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

Phil Steitz commented on MATH-1146:
-----------------------------------

I think the policy should be we document fully our algorithms and NaNs / INFs 
impact computations according to Java's extended arithmetic rules.   This is 
the de facto policy we have in most places now, when you get down to it.  
Otherwise, we end up having to pre-process data for users and make (sometimes 
arbitrary) rules about what computations should actually mean in the presence 
of these values.  I do think its best to specify behavior though, so I favor 
improving javadoc where we can.  In the present case, the updating formula is 
provided in the javadoc, so one could argue there is nothing to do, but I would 
not be averse to adding a statement describing behavior when a NaN or INF is 
added to the data.  I am -0 on trying to extend the definition of the mean to 
datasets including infinities.

> 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