[Bug 201582] ministat does not calculate proper median value (patch included)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Jul 15 07:24:48 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=201582

            Bug ID: 201582
           Summary: ministat does not calculate proper median value (patch
                    included)
           Product: Base System
           Version: 11.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: marcus at blazingdot.com

Created attachment 158793
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=158793&action=edit
Make ministat return proper value for median

>From http://www.mathgoodies.com/lessons/vol8/median.html :

"The median of a set of data is the middlemost number in the set. The median is
also the number that is halfway into the set. To find the median, the data
should be arranged in order from least to greatest. If there is an even number
of items in the data set, then the median is found by taking the mean (average)
of the two middlemost numbers."

Ministat currently returns the second of the two middle numbers if there is an
even number of entries.  This patch takes the middle two and returns their
average.

*** usr.bin/ministat/ministat.c.orig    2015-07-14 23:49:11.246171000 -0700
--- usr.bin/ministat/ministat.c    2015-07-15 00:16:20.895494000 -0700
***************
*** 193,199 ****
  Median(struct dataset *ds)
  {

!     return (ds->points[ds->n / 2]);
  }

  static double
--- 193,200 ----
  Median(struct dataset *ds)
  {

!     if(!(ds->n % 2)) return ((ds->points[ds->n / 2]) + (ds->points[(ds->n /
2)-1]))/2;
!     else return (ds->points[ds->n / 2]);
  }

  static double

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list