Date: Wed, 15 Jul 2015 07:24:48 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 201582] ministat does not calculate proper median value (patch included) Message-ID: <bug-201582-8@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
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@FreeBSD.org Reporter: marcus@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-201582-8>