On Mon, 7 Aug 2023 17:35:34 GMT, Andrey Turbanov <aturba...@openjdk.org> wrote:

>> src/java.base/share/classes/java/lang/Math.java line 3425:
>> 
>>> 3423:     // Constants used in scalb
>>> 3424:     private static final double twoToTheDoubleScaleUp = 
>>> powerOfTwoD(512);
>>> 3425:     private static final double twoToTheDoubleScaleDown = 
>>> powerOfTwoD(-512);
>> 
>> Aren't these the _literals_ `0x1p512` and `0x1p-512`, respectively?
>
> Whoa. You are right.
> 
>     public static void main(String[] args) {
>         System.out.println(twoToTheDoubleScaleUp);
>         System.out.println(twoToTheDoubleScaleDown);
>         System.out.println(0x1p512);
>         System.out.println(0x1p-512);
> 
>         System.out.println(twoToTheDoubleScaleUp == 0x1p512);
>         System.out.println(twoToTheDoubleScaleDown == 0x1p-512);
>     }
> 
> 
> 
> 1.3407807929942597E154
> 7.458340731200207E-155
> 1.3407807929942597E154
> 7.458340731200207E-155
> true
> true

These static fields seem to be used just once each, so we might as well just 
replace the usages with the literals and get rid of the fields.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14875#discussion_r1286221538

Reply via email to