On Mon, 24 Apr 2023 12:00:58 GMT, Raffaello Giulietti <rgiulie...@openjdk.org> 
wrote:

>> Minor refactoring of FdLibm.java; will consider future refactorings with 
>> more substantive code changes in the future.
>
> src/java.base/share/classes/java/lang/FdLibm.java line 76:
> 
>> 74:     private static final int SIGN_BIT        = 0x8000_0000;
>> 75:     private static final int EXP_BITS        = 0x7ff0_0000;
>> 76:     private static final int EXP_SIGNIF_BITS = 0x7fff_ffff;
> 
> These could be expressed in terms of the constants in `Double`. But perhaps 
> it's not worth doing so, after all, as the reader is assumed to be quite 
> knowledgeable.
> 
> Otherwise LGTM.

Yes, I had considered expressing these FDLIBM-internal constants in terms of 
constants from Double or the JDK-internal class DoubleConsts, where they could 
be more directly expressible based on 64-bit versions of the values. However, I 
thought having the constants be more directly assigned in this context would be 
fine.

If these assignments were to be amended, something like adding a static 
initializer block with asserts might be okay along the lines of

assert  SIGN_BIT == (int)(DoubleConsts.SIGN_BIT_MASK >>> 32) &&
    EXP_BITS == (int)(DoubleConsts.EXP_BIT_MASK >>> 32) ... ;

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13604#discussion_r1175542650

Reply via email to