1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
/* gdtr.c
*
* Gamma distribution function
*
*
*
* SYNOPSIS:
*
* double a, b, x, y, gdtr();
*
* y = gdtr( a, b, x );
*
*
*
* DESCRIPTION:
*
* Returns the integral from zero to x of the Gamma probability
* density function:
*
*
* x
* b -
* a | | b-1 -at
* y = ----- | t e dt
* - | |
* | (b) -
* 0
*
* The incomplete Gamma integral is used, according to the
* relation
*
* y = igam( b, ax ).
*
*
* ACCURACY:
*
* See igam().
*
* ERROR MESSAGES:
*
* message condition value returned
* gdtr domain x < 0 0.0
*
*/
/* gdtrc.c
*
* Complemented Gamma distribution function
*
*
*
* SYNOPSIS:
*
* double a, b, x, y, gdtrc();
*
* y = gdtrc( a, b, x );
*
*
*
* DESCRIPTION:
*
* Returns the integral from x to infinity of the Gamma
* probability density function:
*
*
* inf.
* b -
* a | | b-1 -at
* y = ----- | t e dt
* - | |
* | (b) -
* x
*
* The incomplete Gamma integral is used, according to the
* relation
*
* y = igamc( b, ax ).
*
*
* ACCURACY:
*
* See igamc().
*
* ERROR MESSAGES:
*
* message condition value returned
* gdtrc domain x < 0 0.0
*
*/
/* gdtr() */
/*
* Cephes Math Library Release 2.3: March,1995
* Copyright 1984, 1987, 1995 by Stephen L. Moshier
*/
#include "mconf.h"
double gdtri(double, double, double);
double gdtr(a, b, x)
double a, b, x;
{
if (x < 0.0) {
mtherr("gdtr", DOMAIN);
return (NPY_NAN);
}
return (igam(b, a * x));
}
double gdtrc(a, b, x)
double a, b, x;
{
if (x < 0.0) {
mtherr("gdtrc", DOMAIN);
return (NPY_NAN);
}
return (igamc(b, a * x));
}
double gdtri(a, b, y)
double a, b, y;
{
if ((y < 0.0) || (y > 1.0) || (a <= 0.0) || (b < 0.0)) {
mtherr("gdtri", DOMAIN);
return (NPY_NAN);
}
return (igamci(b, 1.0 - y) / a);
}
|