JDK 9 RFR of 4477961: java.lang.Math.toDegrees(double) could be optimized

Mike Duigou mike.duigou at oracle.com
Mon Sep 22 21:24:39 UTC 2014


Looks fine.

I think it is always important note when a change may result in different results for some inputs. I will reiterate for the record what's mentioned in the bug:

> However, one caveat is that this may affect the results of some calculations.
> For example, some range of numbers that used to overflow to infinity by
> performing the multiplication by 180, will now not overflow and will return a
> valid result.

This also applies to very small quantities in toRadians where dividing by 180 may have previously resulted in a zero.

Cheers,

Mike

On Sep 22 2014, at 14:10 , Brian Burkhalter <Brian.Burkhalter at oracle.com> wrote:

> Hello,
> 
> Another relatively small numerics fix:
> 
> Issue:	https://bugs.openjdk.java.net/browse/JDK-4477961
> Webrev:	http://cr.openjdk.java.net/~bpb/4477961/webrev.00/
> 
> Summary: Change constructs like “a * B / C” and “u / V * W” to “x * (Y / Z)” where lower case denotes a variable and upper case a constant. This forces the constant value (Y / Z) to be evaluated only once per VM instance, and replaces division of the variable with multiplication. The resulting performance improvement is more than 300% as measure by JMH on a MacBookPro11,1 dual core i7 running Mac OS 10.9.5.
> 
> Thanks,
> 
> Brian




More information about the core-libs-dev mailing list