Message93370
| Author |
mark.dickinson |
| Recipients |
mark.dickinson, nirinA, rhettinger, steven.daprano, stutzbach, terry.reedy |
| Date |
2009年09月30日.18:35:22 |
| SpamBayes Score |
0.00046540552 |
| Marked as misclassified |
No |
| Message-id |
<1254335737.01.0.378126127915.issue3366@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
A first attempt for lgamma, using Lanczos' formula.
In general, this gives very good accuracy. As the tests show, there's one
big problem area, namely when gamma(x) is close to +-1, so that lgamma(x)
is close to 0. This happens for x ~ 1.0, x ~ 2.0, and various negative
values of x (mathematically, lgamma(x) hits zero twice in each interval
(n-1, n) for n <= -2). In that case the accuracy is still good in
absolute terms (around 1e-15 absolute error), but terrible in ulp terms.
I think it's reasonable to allow an absolute error of a few times the
machine epsilon in lgamma: for many uses, the lgamma result will be
exponentiated at some point (often after adding or subtracting other
lgamma results), and at that point this absolute error just becomes a
small relative error. |
|