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