RFR: 8338694: x86_64 intrinsic for tanh using libm [v2]

Srinivas Vamsi Parasa duke at openjdk.org
Fri Sep 13 22:33:12 UTC 2024


On Wed, 11 Sep 2024 01:59:54 GMT, Joe Darcy <darcy at openjdk.org> wrote:

>>> 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.
>> 
>> Please see the test updated to use `@key randomness` and` jdk.test.lib.RandomFactory` to get and Random object.
>> 
>>> 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).
>>>
>> So far the tests haven't failed with error of 2.5ulp. Would it be better to make it 5ulp? Please let me know.
>
> So far, this will be the only intrinsic implementation of tanh. Therefore, at the moment it is just checking the consistency of the intrinsic implementation with StrictMath/FDLIBM tanh. If the intrinsic has a ~1 ulp accuracy, it would be expected to often be within 2.5 ulps of FDLIBM tanh. However, as written the regression test would not necessarily pass against any allowable Math.tanh implementation, which is the usual criteria for java.lang.Math tests that aren't otherwise constrained (such as by being limited to a given subset of platforms).
> 
> If there was a correctly rounded tanh to compare against, then this style of testing would be valid.
> 
> Are there any plan to intrinsify sinh or cosh?

Hi Joe (@jddarcy),

As suggested by Sandhya (@sviswa7), I added ~750 fixed point tests for tanh in `TanhTests.java` using the quad precision tanh implementation in libquadmath library from gcc. 

Please let me know if this looks good.

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

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


More information about the core-libs-dev mailing list