commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff Hain (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (MATH-375) Elementary functions in JDK are slower than necessary and not as accurate as they could be.
Date Wed, 01 Sep 2010 20:45:53 GMT

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

Jeff Hain edited comment on MATH-375 at 9/1/10 4:44 PM:
--------------------------------------------------------

Hello.

William, I've also contracted the fast-math disease some time ago, which ended up into some
FastMath class as well (http://sourceforge.net/projects/jafama).
Though, your form seems more severe, since you felt the need to stay within about +-0.5 ULP
:)

Anyway, I did run my "FastMath" tests on your class, and found some troubles with special
cases, especially +-Infinity, NaN, or huge values:
see "test_fastmath_wr.zip" attachment, which contains test code, and a log of their run.

Also, running your tests, I had this exception:
-19.731458173549257	2.696103718050787E-9	2.6961037180507868E-9	1.534029657343928E-16	0.5025524399680612
Exception in thread "main" java.lang.RuntimeException: exp() had errors in excess of 0.502
ULP
	at FastMathWRTest.testExpAccuracy(FastMathWRTest.java:458)
	at FastMathWRTest.main(FastMathWRTest.java:18)

May it help you improve your treatments!

Regards,

Jeff


      was (Author: jeff):
    Hello.

William, I've also contracted the fast-math disease some time ago, which ended up into some
FastMath class as well (http://sourceforge.net/projects/jafama).
Though, your form seems more severe, since you felt the need to stay within +-0.5 ULP, whereas
my treatments are a bit more sloppy :)

Anyway, I did run my "FastMath" tests on your class, and found some troubles with special
cases, especially +-Infinity, NaN, or huge values:
see "test_fastmath_wr.zip" attachment, which contains test code, and a log of their run.

Also, running your tests, I had this exception:
-19.731458173549257	2.696103718050787E-9	2.6961037180507868E-9	1.534029657343928E-16	0.5025524399680612
Exception in thread "main" java.lang.RuntimeException: exp() had errors in excess of 0.502
ULP
	at FastMathWRTest.testExpAccuracy(FastMathWRTest.java:458)
	at FastMathWRTest.main(FastMathWRTest.java:18)

May it help you improve your treatments!

Regards,

Jeff

  
> 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, test_fastmath_wr.zip
>
>
> 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.


Mime
View raw message