On Tue, 4 Oct 2022 05:50:26 GMT, Joe Darcy <[email protected]> wrote:
>> src/java.base/share/classes/java/lang/Double.java line 181:
>>
>>> 179: * <li> {@code +0.0} and {@code -0.0} are distinguished from each
>>> other.
>>> 180: * <li> every bit pattern encoding a NaN is considered equivalent to
>>> each other
>>> 181: * <li> an infinite value is equivalent to an infinite value of the
>>> same sign
>>
>> Seems like this line on infinities could be reworded. I wouldn't quibble
>> over this except that I had to read it several times to figure out what it
>> meant. The statement on NaN is universally quantified, whereas the statement
>> on infinite values starts off sounding like an existential quantifier.
>> Possibly: "all infinite values of the same sign are considered equivalent to
>> each other."
>
> Update as suggested and added some cross-links in from BigDecimal; thanks.
PS To further spell things out, I added an additional trailing paragraph:
"For two binary floating-point values a and b, if neither of a and b is zero or
NaN, then the three relations numerical equality, bit-wise equivalence, and
representation equivalence of a and b have the same true/false value. In other
words, for binary floating-point values, the three relations only differ if at
least one argument is zero or NaN."
-------------
PR: https://git.openjdk.org/jdk/pull/10498