[
https://issues.apache.org/jira/browse/MATH-849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sébastien Brisard updated MATH-849:
-----------------------------------
Attachment: MATH-849-Lanczos_vs_NSWC.zip
Attached archive MATH-849-Lanczos_vs_NSWC.zip shows a comparison between
* the old implementation, based on the Lanczos approximation,
* the new implementation, based on the NSWC library.
The plots show that the accuracy improvement is very significant for {{0 <= x
<= 8}}. Outside this range, the accuracy is nearly the same. As the Lanczos
approximation allows a nice fix of MATH-753, I propose to keep both
approximations of Gamma
* for {{x <= 8.0}}: use NSWC
* for {{x >= 8.0}}: use Lanczos.
> Precision improvement in class Gamma
> ------------------------------------
>
> Key: MATH-849
> URL: https://issues.apache.org/jira/browse/MATH-849
> Project: Commons Math
> Issue Type: Improvement
> Reporter: Sébastien Brisard
> Assignee: Sébastien Brisard
> Priority: Minor
> Labels: accuracy, special-functions
> Fix For: 3.1
>
> Attachments: MATH-849-Lanczos_vs_NSWC.zip, MATH-849.patch,
> MATH-849.zip
>
>
> New unit tests (see below) show that (on the set of values tested) the
> current accuracy of {{Gamma.logGamma(double)}} is about 130 ulps.
> The [NSWC Library of Mathematical
> Functions|http://www.dtic.mil/docs/citations/ADA476840] proposes an
> implementation of this function with much higher accuracy: on the same set of
> values, the error goes down to about 3 ulps.
> This library is available
> [here|http://www.ualberta.ca/CNS/RESEARCH/Software/NumericalNSWC/site.html],
> and is license-free [see this
> thread|http://markmail.org/thread/fg4y4dfdnfty5hov]. It is proposed to port
> this implementation in Commons-Math. This in turn could lead to a resolution
> of MATH-738.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira