2 DOUBLE PRECISION FUNCTION d9gmit (A, X, ALGAP1, SGNGAM, ALX)
28 DOUBLE PRECISION A, X, ALGAP1, SGNGAM, ALX, AE, AEPS, ALGS, ALG2,
29 1 bot, eps, fk, s, sgng2, t, te, d1mach,
dlngam
40 IF (x .LE. 0.d0) CALL
xermsg(
'SLATEC',
'D9GMIT',
41 +
'X SHOULD BE GT 0', 1, 2)
44 IF (a.LT.0.d0) ma = a - 0.5d0
48 IF (a.LT.(-0.5d0)) ae = aeps
58 IF (
abs(t).LT.eps*
abs(s)) go to 30
60 CALL
xermsg(
'SLATEC',
'D9GMIT',
61 +
'NO CONVERGENCE IN 200 TERMS OF TAYLOR-S SERIES', 2, 2)
63 30
IF (a.GE.(-0.5d0)) algs = -algap1 +
log(s)
64 IF (a.GE.(-0.5d0)) go to 60
72 t = x*t/(aeps-(m+1-k))
74 IF (
abs(t).LT.eps*
abs(s)) go to 50
78 algs = -ma*
log(x) + algs
79 IF (s.EQ.0.d0 .OR. aeps.EQ.0.d0) go to 60
81 sgng2 = sgngam * sign(1.0d0, s)
82 alg2 = -x - algap1 +
log(
abs(s))
84 IF (alg2.GT.bot)
d9gmit = sgng2 *
exp(alg2)
double precision function dlngam(X)
double precision function d9gmit(A, X, ALGAP1, SGNGAM, ALX)
octave_value log(void) const
subroutine xermsg(LIBRAR, SUBROU, MESSG, NERR, LEVEL)