18 lines
404 B
C
18 lines
404 B
C
|
|
float gammp(float a, float x)
|
|
{
|
|
void gcf(float *gammcf, float a, float x, float *gln);
|
|
void gser(float *gamser, float a, float x, float *gln);
|
|
void nrerror(char error_text[]);
|
|
float gamser,gammcf,gln;
|
|
|
|
if (x < 0.0 || a <= 0.0) nrerror("Invalid arguments in routine gammp");
|
|
if (x < (a+1.0)) {
|
|
gser(&gamser,a,x,&gln);
|
|
return gamser;
|
|
} else {
|
|
gcf(&gammcf,a,x,&gln);
|
|
return 1.0-gammcf;
|
|
}
|
|
}
|