[ 
https://issues.apache.org/jira/browse/MATH-1146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14100863#comment-14100863
 ] 

Gilles commented on MATH-1146:
------------------------------

bq. \[...\] fast, accurate \[...\]

There is a trade-off; this implementation of "Mean" is going to be accurate for 
longer sequences than with the other formula.
But it may be interesting to provide the alternative implementation which, as 
you indicate, is more efficient (and handles correctly the use-case reported 
here).
Could you please request further opinions on the "dev" ML?


> class Mean returns incorrect result after processing an Infinity value
> ----------------------------------------------------------------------
>
>                 Key: MATH-1146
>                 URL: https://issues.apache.org/jira/browse/MATH-1146
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.3
>            Reporter: david cogen
>         Attachments: MATH-1146.patch
>
>
> 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.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to