RFR: JDK-8294539: Augment discussion of equivalence relations on floating-point values [v2]

Stuart Marks smarks at openjdk.org
Mon Oct 3 20:06:26 UTC 2022


On Fri, 30 Sep 2022 17:24:40 GMT, Joe Darcy <darcy at openjdk.org> wrote:

>> While the floating-point == operation is *not* an equivalence relation, there are useful equivalence relations that can be defined over floating-point values. Text is added to java.lang.Double to discuss and name those relations.
>
> Joe Darcy has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Add discussion of numerical equality.
>  - Fix typo.

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."

-------------

PR: https://git.openjdk.org/jdk/pull/10498


More information about the core-libs-dev mailing list