-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 3.3
-
Fix Version/s: 3.4
-
Labels:None
1. Create a Mean object.
2. call increment() with Double.POSITIVE_INFINITY.
3. Call getResult(). Result is INFINITY as expected.
4. call increment() with 0.
5. Call getResult(). Result is NaN; not INFINITY as expected.
This is apparently due to the "optimization" for calculating mean described in the javadoc. Rather than accumulating a sum, it maintains a running mean value using the formula "m = m + (new value - m) / (number of observations)", which unlike the "definition way", fails after an infinity.
I was using Mean within a SummaryStatistics. Other statistics also seem to be affected; for example, the standard deviation also incorrectly gives NaN rather than Infinity. I don't know if that's due to the error in Mean or if the other stats classes have similar bugs.