X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Fhistogram.c;h=264b0785351b99c9da8c3397294a0ef1bb1f716f;hb=49aaf665f7ad1fed25d23b6ccb0da1c5461c4846;hp=60adaa92d1b1c92e65763223cd26ce6ec9fb621a;hpb=d2b2641dcadcdceede8be06df48739b11828b313;p=pspp diff --git a/src/math/histogram.c b/src/math/histogram.c index 60adaa92d1..264b078535 100644 --- a/src/math/histogram.c +++ b/src/math/histogram.c @@ -37,16 +37,7 @@ void histogram_add (struct histogram *h, double y, double c) { - struct statistic *stat = &h->parent; - stat->accumulate (stat, NULL, c, 0, y); -} - -static void -acc (struct statistic *s, const struct ccase *cx UNUSED, double c, double cc UNUSED, double y) -{ - struct histogram *hist = UP_CAST (s, struct histogram, parent); - - gsl_histogram_accumulate (hist->gsl_hist, y, c); + gsl_histogram_accumulate (h->gsl_hist, y, c); } static void @@ -119,6 +110,15 @@ hist_find_pretty_no_of_bins(double bin_width_in, double min, double max, nbins = ceil((max-*adjusted_min)/binwidth); *adjusted_max = nbins*binwidth + *adjusted_min; + /* adjusted_max should never be smaller than max but if it is equal + then the gsl_histogram will not add the cases which have max value */ + if (*adjusted_max <= max) + { + *adjusted_max += binwidth; + nbins++; + } + assert (*adjusted_min <= min); + return nbins; } @@ -168,7 +168,6 @@ histogram_create (double bin_width_in, double min, double max) } stat = &h->parent; - stat->accumulate = acc; stat->destroy = destroy; return h;