RFR: 8378414: Add methods to test for representation equivalence [v2]
ExE Boss
duke at openjdk.org
Tue Feb 24 17:28:25 UTC 2026
On Mon, 23 Feb 2026 17:56:26 GMT, Joe Darcy <darcy at openjdk.org> wrote:
>> Floating-point values have a notion of representation equivalence distinct from the comparison done by ==. This notion of equivalence could have a method to provide the predicate directly, rather than relying on one of several expressions listed in the documentation ([JDK-8295391](https://bugs.openjdk.org/browse/JDK-8295391)).
>
> Joe Darcy has updated the pull request incrementally with one additional commit since the last revision:
>
> Respond to review feedback; add build tags.
src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float16.java line 1075:
> 1073: */
> 1074: public static boolean equivalent(Float16 f1, Float16 f2) {
> 1075: return Float.equivalent(f1.floatValue(), f2.floatValue());
Maybe use `Float16.float16ToShortBits(…)` instead, matching `Float16::equals(…)`, which avoids the `Float16` to `float` conversion:
https://github.com/openjdk/jdk/blob/49f14eb9fca155319d5475019715189e9f65dffd/src/jdk.incubator.vector/share/classes/jdk/incubator/vector/Float16.java#L936-L939
Suggestion:
return float16ToShortBits(f1) == float16ToShortBits(f2);
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29870#discussion_r2848529085
More information about the core-libs-dev
mailing list