You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Luc Maisonobe (JIRA)" <ji...@apache.org> on 2010/08/26 17:32:56 UTC

[jira] Commented: (MATH-375) Elementary functions in JDK are slower than necessary and not as accurate as they could be.

    [ https://issues.apache.org/jira/browse/MATH-375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12902899#action_12902899 ] 

Luc Maisonobe commented on MATH-375:
------------------------------------

Thanks for the fix.
I think we will probably start with all missing functions implemented with a call to the corresponding Math function, This would allow people to simply do global search and replace for Math to FastMath and have a working setup.
>From my personal use, the higher priorities functions to be implemented with fast and accurate versions would be first asin, acos, then cbrt and later sinh, cosh, tanh.
For functions like nextUp, signum and the likes, we could use our own bit twiddling (we should also probably move MathUtil.nextAfter in the FastMath class too).
I still did not see the grant registered in Apache foundation files, did you sent it already ?

> Elementary functions in JDK are slower than necessary and not as accurate as they could be.
> -------------------------------------------------------------------------------------------
>
>                 Key: MATH-375
>                 URL: https://issues.apache.org/jira/browse/MATH-375
>             Project: Commons Math
>          Issue Type: New Feature
>         Environment: JDK 1.4 - 1.6
>            Reporter: William Rossi
>             Fix For: 2.2
>
>         Attachments: atanpatch.txt.gz, FastMath.tar.gz
>
>
> I would like to contribute improved versions on exp(), log(), pow(), etc.  to the project.  Please refer to this discussion thread http://markmail.org/message/zyeoguw6gwtofm62.
> I have developed over the past year a set of elementary functions similar to those in java.lang.Math, but with the following characteristics:
> * Higher performance.
> * Better accuracy.  Results are accurate to slightly more that +/- 0.5 ULP.
> * Pure Java.  The standard Math class is impleneted via JNI, and thus takes a performance hit.
> Note that some functions such as exp are nearly twice as fast in my implementation.   I've seen it 3 times faster on different processors.   The preformance varies by the relative speed of calculation vs memory lookups.
> The functions are implemented as tables of values in extra precision (approx 70 bits), and then interpolated with a minimax polynomial.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.