On Tue, 27 Aug 2024 22:44:43 GMT, Joe Darcy <da...@openjdk.org> wrote:

>>> This PR doesn't include any additional tests. It is often appropriate to 
>>> add more regression testing when introducing a new implementation of a 
>>> method.
>> 
>> Thank You Joe for the suggestion. Will add more tests. (This PR passes the 
>> tier-1 tanh tests in the HyperbolicTests.Java)
>
>> > This PR doesn't include any additional tests. It is often appropriate to 
>> > add more regression testing when introducing a new implementation of a 
>> > method.
>> 
>> Thank You Joe for the suggestion. Will add more tests. (This PR passes the 
>> tier-1 tanh tests in the HyperbolicTests.Java)
> 
> Yes @vamsi-parasa ; running that test is a good backstop and it is written to 
> be applicable to any implementation of {sinh, cosh, tanh} that meet the 
> general quality-of-implementation criteria for java.lang.Math. To be 
> explicit, the WorstCaseTests.java file, and for good measure all the 
> java.lang.Math tests, should also be run too for a change like this.
> 
> For a hypothetical example, if an intrinsic used different polynomials for 
> different ranges of the input, it would be a reasonable regression tests _for 
> that implementation_ to probe around the boundary of the transition between 
> the polynomials to make sure the monotonicity requirements were being met.
> 
> That kind of check could be written to be generally applicable and be 
> suitable for a regression tests in java/lang/Math or could be suitable for a 
> regression test in the HotSpot area. HTH

Hi Joe(@jddarcy)  and Andrew (@theRealAph) ,

Please see the updates below:

> This PR doesn't include any additional tests. It is often appropriate to add 
> more regression testing when introducing a new implementation of a method.
>

Added 1500 regression tests in HyperbolicTests.java which compare the accuracy 
of the Math.tanh intrinsic by using StrictMath.tanh (which calls 
FdLibm.Tanh.compute) as a reference. The tests are passing within 2.5 ulps of 
the expected result. The tests are fairly exhaustive and also cover the 
boundary transitions.

> Yes @vamsi-parasa ; running that test is a good backstop and it is written to 
> be applicable to any implementation of {sinh, cosh, tanh} that meet the 
> general quality-of-implementation criteria for java.lang.Math. To be 
> explicit, the WorstCaseTests.java file, and for good measure all the 
> java.lang.Math tests, should also be run too for a change like this.
>
Ran the WorstCaseTests.java and all the tests in java.lang.Math and they're 
passing on my local machine. 

> For a hypothetical example, if an intrinsic used different polynomials for 
> different ranges of the input, it would be a reasonable regression tests _for 
> that implementation_ to probe around the boundary of the transition between 
> the polynomials to make sure the monotonicity requirements were being met.
> 
Added new tests in HyperbolicTests.java which probe around the various 
boundaries of transition. 1500 testcases and they passed within 2.5ulps of the 
reference StrictMath.tanh

> That kind of check could be written to be generally applicable and be 
> suitable for a regression tests in java/lang/Math or could be suitable for a 
> regression test in the HotSpot area. HTH

Please let me know if anything more needs to be added.

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

PR Comment: https://git.openjdk.org/jdk/pull/20657#issuecomment-2322295827

Reply via email to