[
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