harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Hindess (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-6242) Math.max(double, double) gives wrong answer when Math.max(-0.0d, 0.0d)
Date Wed, 24 Jun 2009 09:25:07 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-6242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12723509#action_12723509
] 

Mark Hindess commented on HARMONY-6242:
---------------------------------------

We might as well fix Math.min() which is similarly broken while we are doing this.  That breakage
results in:

  Math.min(0.0d,0.0d) = -0.0

which is pretty confusing behaviour.


> Math.max(double, double) gives wrong answer when Math.max(-0.0d, 0.0d)
> ----------------------------------------------------------------------
>
>                 Key: HARMONY-6242
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6242
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>    Affects Versions: 5.0M10
>         Environment: Any, my test environment is x64 Linux with MRP (http://mrp.codehaus.org/)
>            Reporter: Ian Rogers
>            Assignee: Mark Hindess
>             Fix For: 5.0M11
>
>
> In the code:
> public static double max(double d1, double d2) {
>   if (d1 > d2)
>     return d1;
>   if (d1 < d2)
>     return d2;
>   /* if either arg is NaN, return NaN */
>   if (d1 != d2)
>     return Double.NaN;
>   /* max( +0.0,-0.0) == +0.0 */
>   if (d1 == 0.0 && (d1 != -0.0d || d2 != -0.0d))
>     return 0.0;
>   return d1;
> } 
> This test is never true:
>   if (d1 == 0.0 && (d1 != -0.0d || d2 != -0.0d))
> as 0.0 == -0.0 and d2 must be 0.0 or -0.0. This means that in the case of two 0.0 parameters
d1 is returned, which is the incorrect behaviour if d2 is 0.0 and d1 -0.0.
> A simple test:
>       System.out.println(Math.max(-0.0d, 0.0d));
> prints -0.0 with Harmony and 0.0 with a non-Harmony classlib.

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


Mime
View raw message