On Wed, 13 Jul 2022 12:38:23 GMT, Raffaello Giulietti <d...@openjdk.org> wrote:
>> Initial implementation. > > src/java.base/share/classes/java/lang/Float.java line 1100: > >> 1098: >> 1099: // The overflow threshold is binary16 MAX_VALUE + 1/2 ulp >> 1100: if (abs_f > (65504.0f + 16.0f) ) { > > if (abs_f >= (65504.0f + 16.0f) ) { > > Value exactly halfway must round to infinity. Good catch. The rest of the code computed the right value, but the condition should be changed as suggested. > src/java.base/share/classes/java/lang/Float.java line 1141: > >> 1139: >> 1140: // Significand bits as if using rounding to zero >> (truncation). >> 1141: signif_bits = (short)((doppel & 0x0007f_e000) >> > > signif_bits = (short)((doppel & 0x007f_e000) >> > > or even > > signif_bits = (short)((doppel & 0x007f_ffff) >> > > 32 bit hex are more readable when they have 8 hex digits Oops; yes, I intended for the int hex constants to have at most 8 hex digits. ------------- PR: https://git.openjdk.org/jdk/pull/9422