RFR: 8240632: Note differences between IEEE 754-2019 math lib special cases and java.lang.Math [v2]

Brian Burkhalter bpb at openjdk.java.net
Fri Feb 5 21:15:44 UTC 2021


On Thu, 4 Feb 2021 18:30:57 GMT, Joe Darcy <darcy at openjdk.org> wrote:

>> Recent revisions of the IEEE 754 floating-point standard have added guidance on how typical math library methods (sin, cos, tan, etc.) should behave in terms of their general quality of implementation as well as on special values.
>> 
>> Other than the pow methods, for the recommended operations listed by IEEE 754 that the Java math library already includes, the special cases that are specified by Java are the same as those specified by IEEE 754, except for the pow method. IEEE 754 calls out some special cases not explicitly listed in the Java specs. This changeset adds those special cases to the spec and adds tests of the the special cases if not already present.
>> 
>> If method "Foo" already had a regression test, new cases were added it it. Otherwise, a new test was added to cover the special cases of several methods.
>> 
>> There is no intention at the moment to change the behavior of pow to align with IEEE 754.
>
> Joe Darcy has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Correct acos spec and fix regression test.

src/java.base/share/classes/java/lang/Math.java line 237:

> 235:      * <ul><li>If the argument is NaN or its absolute value is greater
> 236:      * than 1, then the result is NaN.
> 237:      * <li>If the argument is {@code 1.0}, the result is {@code +0.0}.

`+0.0` is used here but in several cases below  it is written out as `positive zero`.

src/java.base/share/classes/java/lang/Math.java line 716:

> 714:      * the infinite power as a large integer (large-magnitude
> 715:      * floating-point numbers are numerically integers, specifically
> 716:      * even integer) and therefore specifies {@code 1.0} be returned.

In this sentence `integer` should be plural.

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

PR: https://git.openjdk.java.net/jdk/pull/2395


More information about the core-libs-dev mailing list