X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Fhistogram.c;h=8aaa16f9e0a684bca8333fee51d6c6874319a69b;hb=3c7e6939901e8c2f24eb4975e6feb68e74678f92;hp=3f31ece4b17160804b149d06b6d6dd386cef9dc2;hpb=19e56b3221e1008ad4cd374c2e8fc925da8ba1a7;p=pspp diff --git a/src/math/histogram.c b/src/math/histogram.c index 3f31ece4b1..8aaa16f9e0 100644 --- a/src/math/histogram.c +++ b/src/math/histogram.c @@ -45,17 +45,8 @@ 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 *gslh = hist->gsl_hist; - /* Include cases which are just on the boundary */ - if (y == gsl_histogram_max (gslh)) - { - double lower, upper; - gsl_histogram_get_range (gslh, gsl_histogram_bins (gslh)-1, &lower, &upper); - gsl_histogram_accumulate (gslh, lower + (upper - lower)/2.0, c); - } - else - gsl_histogram_accumulate (hist->gsl_hist, y, c); + gsl_histogram_accumulate (hist->gsl_hist, y, c); } static void @@ -128,6 +119,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; }