void histogram_delete(struct histogram *h) { histogram_clear(h); if(h->buckets) { itable_delete(h->buckets); } free(h); }
static void category_clear_histogram(struct histogram *h) { double *buckets = histogram_buckets(h); int i; for(i = 0; i < histogram_size(h); i++) { double start = buckets[i]; void *time_accum = histogram_get_data(h, start); if(time_accum) { free(time_accum); } } histogram_clear(h); }
int DjVuPalette::compute_pixmap_palette(const GPixmap &pm, int ncolors, int minboxsize) { // Prepare histogram histogram_clear(); { // extra nesting for windows for (int j=0; j<(int)pm.rows(); j++) { const GPixel *p = pm[j]; for (int i=0; i<(int)pm.columns(); i++) histogram_add(p[i], 1); } } // Compute palette return compute_palette(ncolors, minboxsize); }