dgami.f
927 Bytes
double precision function dgami (a, x)
c july 1977 edition. w. fullerton, c3, los alamos scientific lab.
c
c evaluate the incomplete gamma function defined by
c
c gami = integral from t = 0 to x of exp(-t) * t**(a-1.0) .
c
c gami is evaluated for positive values of a and non-negative values
c of x. a slight deterioration of 2 or 3 digits accuracy will occur
c when gami is very large or very small, because logarithmic variables
c are used.
c
double precision a, x, factor, dlngam, dgamit, dexp, dlog
external dgamit, dlngam
c
if (a.le.0.d0) call seteru (25hdgami a must be gt zero, 25, 1,2)
if (x.lt.0.d0) call seteru (25hdgami x must be ge zero, 25, 2,2)
c
dgami = 0.d0
if (x.eq.0.0d0) return
c
c the only error possible in the expression below is a fatal overflow.
factor = dexp (dlngam(a) + a*dlog(x))
c
dgami = factor * dgamit (a, x)
c
return
end