Mark Dickinson <[email protected]> added the comment:
New patch for gamma , with some tweaks:
- return exact values for integral arguments: gamma(1) through gamma(23)
- apply a cheap correction to improve accuracy of exp and pow
computations
- use a different form of the reflection formula:
gamma(x) = -pi/sinpi(x)/x/gamma(x)
(the usual reflection formula has accuracy problems for
x close to a power of 2; e.g., x in (-64,-63) or x
in (-128, -127))
- avoid duplication formula for large negative arguments
- add a few extra tests
On my machine, testing with approx. 10**7 random samples, this version
achieves an accuracy of <= 10 ulps across the domain (comparing with
correctly-rounded results generated by MPFR). Limiting the test to
arguments in the range (-256.0, 1/256.0] + [1/256.0, 256.0) (with each
float in that range equally likely), the error in ulps from 10**6 samples
has mean -0.104 and standard deviation 1.230.
I plan to check this in in a week or two. Feedback welcome! It would be
especially useful to know whether this patch compiles correctly on
Windows.
----------
keywords: +needs review
stage: -> commit review
Added file: http://bugs.python.org/file14940/gamma4.patch
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue3366>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com