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

Phil Steitz commented on MATH-370:
----------------------------------

Looking carefully at the uses inside [math] and reviewing my own uses, I agree 
now that the original definitions of equals(double, double) and equals(double, 
double, double) were incorrect, or I guess I should say "unfortunate."  
Regarding equals(double, double), I don't see why we need that at all - just 
deprecate and replace by "equalsN" or somesuch or remove it altogether in 3.0. 
The uses of equals(double, double, double)  in the linear package should NOT 
identify NaNs, so these would benefit from changing behavior.  The uses in the 
stats package of the array version are OK, I think - i.e., I think it is a 
legitimate definition of equals for a stats reporting object to identify stats 
that report NaNs in the same places.

So the question is what to do.  I don't think we can change the contracts or 
delete methods in point releases, so the reasonable thing to do is to 

1) deprecate equals(double, double) 
2) Make a note in the javadoc for equals(double[], double[]) and equals(double, 
double, double) indicating that in version 3.0 these methods will handle NaNs 
differently.
3) Fix equals(double, double, int).  This method does not use equals(double, 
double) and does not specify how NaNs are handled in its javadoc, so it can be 
fixed.

> NaN in "equals" methods
> -----------------------
>
>                 Key: MATH-370
>                 URL: https://issues.apache.org/jira/browse/MATH-370
>             Project: Commons Math
>          Issue Type: Bug
>            Reporter: Gilles
>            Priority: Minor
>
> In "MathUtils", some "equals" methods will return true if both argument are 
> NaN.
> Unless I'm mistaken, this contradicts the IEEE standard.
> If nobody objects, I'm going to make the changes.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to