12 const
int IncompleteGamma::ITMAX =100;
13 const
double IncompleteGamma::EPS =3.0E-7;
14 const
double IncompleteGamma::FPMIN =1.0e-30;
30 assert(x>=0.0 && _a.
getValue() > 0.0);
44 double IncompleteGamma::_gamser(
double xa,
double x,
double logGamma)
const {
50 for (n=1;n<ITMAX;n++) {
54 if (fabs(del) < fabs(sum)*EPS)
return sum*exp(-x + xa*log(x) - logGamma);
63 double IncompleteGamma::_gammcf(
double xa,
double x,
double logGamma)
const {
65 double an,
b,c,d,del,h;
72 for (i=1;i<ITMAX;i++) {
76 if (fabs(d) < FPMIN) d = FPMIN;
78 if (fabs(c) < FPMIN) c = FPMIN;
82 if (fabs(del-1.0) < EPS)
return exp(-x+xa*log(x)-logGamma)*h;