12 const int IncompleteGamma::ITMAX =100;
13 const double IncompleteGamma::EPS =3.0E-7;
14 const double IncompleteGamma::FPMIN =1.0e-30;
17 IncompleteGamma::IncompleteGamma():
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;