[SciPy-dev] Definition of gammaln(x) for negative x
G-J van Rooyen
Sat Nov 1 11:54:23 CDT 2008
Ticket #737 refers:
Gamma in negative for negative x whose floor value is odd. As such,
gammaln does not make sense for those values (while staying in the
real domain, at least). scipy.special.gammaln returns bogus values:
import numpy as np
from scipy.special import gamma, gammaln
Returns nan in the first case (expected) and 1.26551212348 in the
second (totally meaningless value).
The info line for gammaln reads:
* gammaln -- Log of the absolute value of the gamma function.
With this definition of gammaln, the function actually works fine,
since np.log(abs(gamma(-0.5))) is in fact 1.2655. However, this seems
to be an unusual definition for gammaln. What is the best way to fix
1) Keep it as it is, with gammaln(x) = ln|gamma(x)|
2) Change it so that it returns NaN for negative values of gamma(x)
(i.e. negative x whose floor value is odd)
3) Change it to always give NaN for negative values of x (Matlab's approach)
4) Have it return complex values for negative logarithms
Which is best?
More information about the Scipy-dev