commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MATH-843) Precision.EPSILON: wrong documentation
Date Thu, 09 Aug 2012 12:16:20 GMT

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

Gilles commented on MATH-843:
-----------------------------

bq. On some machines, the expression 1 + Precision.EPSILON in the test 1 + Precision.EPSILON
== 1 might be hold in a register with extended precision and thus may be greater than 1. The
expression then returns false.

Did you actually see that?
I would (maybe naively) think that "1 + ESPILON" would be cast to a 64-bit double before the
comparison. If so, wouldn't the equality still hold?

bq. Regarding the other definition: [...]

No problem to add this comment if you provide it here in a "noformat" block with all the references
as HTML links ("<a href="...">...</a>") which I can copy/paste into the code.
Thanks.

                
> Precision.EPSILON: wrong documentation
> --------------------------------------
>
>                 Key: MATH-843
>                 URL: https://issues.apache.org/jira/browse/MATH-843
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.0
>            Reporter: Dominik Gruntz
>            Priority: Minor
>              Labels: documentation
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> The documentation of the Field {{EPSILON}} in class {{org.apache.commons.math3.util.Precision}}
states, that {{EPSILON}} is the smallest positive number such that {{1 - EPSILON}} is not
numerically equal to 1, and its value is defined as 1.1102230246251565E-16.
> However, this is NOT the smallest positive number with this property.
> Consider the following program:
> {code}
> public class Eps {
>   public static void main(String[] args) {
>     double e = Double.longBitsToDouble(0x3c90000000000001L);
> 	double e1 = 1-e;
> 	System.out.println(e);
> 	System.out.println(1-e);
> 	System.out.println(1-e != 1);
>   }
> }
> {code}
> The output is:
> {code}
> % java Eps
> 5.551115123125784E-17
> 0.9999999999999999
> true
> {code}
> This proves, that there are smaller positive numbers with the property that 1-eps !=
1.
> I propose not to change the constant value, but to update the documentation. The value
{{Precision.EPSILON}} is 
> an upper bound on the relative error which occurs when a real number is
> rounded to its nearest Double floating-point number. I propose to update 
> the api docs in this sense.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message