Message93370
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. |
|
Date |
User |
Action |
Args |
2009-09-30 18:35:37 | mark.dickinson | set | recipients:
+ mark.dickinson, rhettinger, terry.reedy, stutzbach, nirinA, steven.daprano |
2009-09-30 18:35:37 | mark.dickinson | set | messageid: <1254335737.01.0.378126127915.issue3366@psf.upfronthosting.co.za> |
2009-09-30 18:35:30 | mark.dickinson | link | issue3366 messages |
2009-09-30 18:35:29 | mark.dickinson | create | |
|