RFR: 6506405: Math.abs(float) is slow [v7]
Brian Burkhalter
bpb at openjdk.java.net
Fri Jul 9 22:52:20 UTC 2021
On Fri, 9 Jul 2021 22:02:14 GMT, Joe Darcy <darcy at openjdk.org> wrote:
>> Brian Burkhalter has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR.
>
> src/java.base/share/classes/jdk/internal/math/DoubleConsts.java line 89:
>
>> 87: ((SIGN_BIT_MASK & SIGNIF_BIT_MASK) == 0L) &&
>> 88: ((EXP_BIT_MASK & SIGNIF_BIT_MASK) == 0L)) &&
>> 89: ((SIGN_BIT_MASK | MAG_BIT_MASK) == ~0));
>
> Nit: please use "~0L" instead so the long-ness of 0 is explicit.
Fixed.
> test/jdk/java/lang/Math/AbsTests.java line 202:
>
>> 200: return Float.floatToRawIntBits(result) !=
>> 201: Float.floatToRawIntBits(f) ? 1 : 0;
>> 202: } else if ((f >= 0 && result != f) || (f < 0 && result != -f)) {
>
> Please look at the Tests.java file in the jdk/test/java/lang/Math directory. One of the methods like
>
> public static int test(String testName, double input,
> double result, double expected
>
> will be helpful here; e.g.
>
> Tests.test("Math.abs", f, Math.abs(-f), f)
>
> I would also add combination for StrictMath.abs and negations:
>
> Tests.test("Math.abs", f, Math.abs(f), f)
> Tests.test("StrictMath.abs", -f, Math.abs(f), f)
> Tests.test("StrictMath.abs", f, Math.abs(f), f)
Modified.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4711
More information about the core-libs-dev
mailing list