Dominik Gruntz created MATH-843:
-----------------------------------

             Summary: 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


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

        

Reply via email to