On Fri, 30 Aug 2024 20:26:05 GMT, Srinivas Vamsi Parasa <d...@openjdk.org> 
wrote:

>> The goal of this PR is to implement an x86_64 intrinsic for 
>> java.lang.Math.tanh() using libm
>> 
>> Benchmark (ops/ms) | Stock JDK | Tanh intrinsic | Speedup
>> -- | -- | -- | --
>> MathBench.tanhDouble | 70900 | 95618 | 1.35x
>
> Srinivas Vamsi Parasa has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Add stub initialization and extra tanh tests

test/jdk/java/lang/Math/HyperbolicTests.java line 1009:

> 1007:         for(int i = 0; i < testCases.length; i++) {
> 1008:             double testCase = testCases[i];
> 1009:             failures += testTanhWithReferenceUlpDiff(testCase, 
> StrictMath.tanh(testCase), 2.5);

The allowable worst-case error is 2.5 ulp, although at many arguments FDLIBM 
has a smaller error.

For a general Math vs StrictMath test with an allowable 2.5 ulp error, without 
knowing how accurate FDLIBM is for that function and argument, a large error of 
approx. 2X the nominal error should be allowed (in case FDLIBM errors in one 
direction and the Math method errors in the other direction).

If the test is going to use randomness, then its jtreg tags should include

`@key randomness`

and it is preferable to use jdk.test.lib.RandomFactory to get and Random object 
since that handles printing out a key so the random sequence can be replicated 
if the test fails.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20657#discussion_r1742826418

Reply via email to