1 /* 2 Copyright (C) 2003-2013 Paul Brossier <piem@aubio.org> 3 4 This file is part of aubio. 5 6 aubio is free software: you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or 9 (at your option) any later version. 10 11 aubio is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with aubio. If not, see <http://www.gnu.org/licenses/>. 18 19 */ 20 21 /** @file 22 * 23 * Histogram function 24 * 25 * Big hacks to implement an histogram 26 */ 27 28 #ifndef AUBIO_HIST_H 29 #define AUBIO_HIST_H 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 /** histogram object */ 36 typedef struct _aubio_hist_t aubio_hist_t; 37 38 /** histogram creation 39 40 \param flow minimum input 41 \param fhig maximum input 42 \param nelems number of histogram columns 43 44 */ 45 aubio_hist_t * new_aubio_hist(smpl_t flow, smpl_t fhig, uint_t nelems); 46 /** histogram deletion */ 47 void del_aubio_hist(aubio_hist_t *s); 48 /** compute the histogram */ 49 void aubio_hist_do(aubio_hist_t *s, fvec_t * input); 50 /** compute the histogram ignoring null elements */ 51 void aubio_hist_do_notnull(aubio_hist_t *s, fvec_t * input); 52 /** compute the mean of the histogram */ 53 smpl_t aubio_hist_mean(const aubio_hist_t *s); 54 /** weight the histogram */ 55 void aubio_hist_weight(aubio_hist_t *s); 56 /** compute dynamic histogram for non-null elements */ 57 void aubio_hist_dyn_notnull (aubio_hist_t *s, fvec_t *input); 58 59 #ifdef __cplusplus 60 } 61 #endif 62 63 #endif /* AUBIO_HIST_H */ 64