dgamr.f
631 Bytes
double precision function dgamr (x)
c july 1977 edition. w. fullerton, c3, los alamos scientific lab.
c this routine, not dgamma(x), should be the fundamental one.
c
double precision x, alngx, sgngx, dgamma, dint, dexp
external dgamma
c
dgamr = 0.0d0
if (x.le.0.0d0 .and. dint(x).eq.x) return
c
call entsrc (irold, 1)
if (dabs(x).gt.10.0d0) go to 10
dgamr = 1.0d0/dgamma(x)
call erroff
call entsrc (ir, irold)
return
c
10 call dlgams (x, alngx, sgngx)
call erroff
call entsrc (ir, irold)
dgamr = sgngx * dexp(-alngx)
return
c
end