B | |
bdtr [Ocephes] | Binomial distribution SYNOPSIS: int k, n; double p, y, bdtr(); y = bdtr( k, n, p ); DESCRIPTION: Returns the sum of the terms 0 through k of the Binomial probability density: k -- ( n ) j n-j > ( ) p (1-p) -- ( j ) j=0 The terms are not summed directly; instead the incomplete beta integral is employed, according to the formula y = bdtr( k, n, p ) = incbet( n-k, k+1, 1-p ). The arguments must be positive, with p ranging from 0 to 1. ACCURACY: Tested at random points (a,b,p), with p between 0 and 1. a,b Relative error: arithmetic domain # trials peak rms For p between 0.001 and 1: IEEE 0,100 100000 4.3e-15 2.6e-16 See also incbet.c. ERROR MESSAGES: message condition value returned bdtr domain k < 0 0.0 n < k x < 0, x > 1 |
bdtrc [Ocephes] | Complemented binomial distribution SYNOPSIS: int k, n; double p, y, bdtrc(); y = bdtrc( k, n, p ); DESCRIPTION: Returns the sum of the terms k+1 through n of the Binomial probability density: n -- ( n ) j n-j > ( ) p (1-p) -- ( j ) j=k+1 The terms are not summed directly; instead the incomplete beta integral is employed, according to the formula y = bdtrc( k, n, p ) = incbet( k+1, n-k, p ). The arguments must be positive, with p ranging from 0 to 1. ACCURACY: Tested at random points (a,b,p). a,b Relative error: arithmetic domain # trials peak rms For p between 0.001 and 1: IEEE 0,100 100000 6.7e-15 8.2e-16 For p between 0 and .001: IEEE 0,100 100000 1.5e-13 2.7e-15 ERROR MESSAGES: message condition value returned bdtrc domain x<0, x>1, n<k 0.0 |
bdtri [Ocephes] | Inverse binomial distribution SYNOPSIS: int k, n; double p, y, bdtri(); p = bdtr( k, n, y ); DESCRIPTION: Finds the event probability p such that the sum of the terms 0 through k of the Binomial probability density is equal to the given cumulative probability y. This is accomplished using the inverse beta integral function and the relation 1 - p = incbi( n-k, k+1, y ). ACCURACY: Tested at random points (a,b,p). a,b Relative error: arithmetic domain # trials peak rms For p between 0.001 and 1: IEEE 0,100 100000 2.3e-14 6.4e-16 IEEE 0,10000 100000 6.6e-12 1.2e-13 For p between 10^-6 and 0.001: IEEE 0,100 100000 2.0e-12 1.3e-14 IEEE 0,10000 100000 1.5e-12 3.2e-14 See also incbi.c. ERROR MESSAGES: message condition value returned bdtri domain k < 0, n <= k 0.0 x < 0, x > 1 |
btdtr [Ocephes] | Beta distribution SYNOPSIS: double a, b, x, y, btdtr(); y = btdtr( a, b, x ); DESCRIPTION: Returns the area from zero to x under the beta density function: x - - | (a+b) | | a-1 b-1 P(x) = ---------- | t (1-t) dt - - | | | (a) | (b) - 0 This function is identical to the incomplete beta integral function incbet(a, b, x). The complemented function is 1 - P(1-x) = incbet( b, a, x ); ACCURACY: See incbet.c. |
C | |
chbevl [Ocephes] | Evaluate Chebyshev series SYNOPSIS: int N; double x, y, coef[N], chebevl(); y = chbevl( x, coef, N ); DESCRIPTION: Evaluates the series N-1 - ' y = > coef[i] T (x/2) - i i=0 of Chebyshev polynomials Ti at argument x/2. Coefficients are stored in reverse order, i.e. the zero order term is last in the array. Note N is the number of coefficients, not the order. If coefficients are for the interval a to b, x must have been transformed to x -> 2(2x - b - a)/(b-a) before entering the routine. This maps x from (a, b) to (-1, 1), over which the Chebyshev polynomials are defined. If the coefficients are for the inverted interval, in which (a, b) is mapped to (1/b, 1/a), the transformation required is x -> 2(2ab/x - b - a)/(b-a). If b is infinity, this becomes x -> 4a/x - 1. SPEED: Taking advantage of the recurrence properties of the Chebyshev polynomials, the routine requires one more addition per loop than evaluating a nested polynomial of the same degree. |
chdtr [Ocephes] | Chi-square distribution SYNOPSIS: double df, x, y, chdtr(); y = chdtr( df, x ); DESCRIPTION: Returns the area under the left hand tail (from 0 to x) of the Chi square probability density function with v degrees of freedom. inf. - 1 | | v/2-1 -t/2 P( x | v ) = ----------- | t e dt v/2 - | | 2 | (v/2) - x where x is the Chi-square variable. The incomplete gamma integral is used, according to the formula y = chdtr( v, x ) = igam( v/2.0, x/2.0 ). The arguments must both be positive. ACCURACY: See igam(). ERROR MESSAGES: message condition value returned chdtr domain x < 0 or v < 1 0.0 |
chdtrc [Ocephes] | Complemented Chi-square distribution SYNOPSIS: double v, x, y, chdtrc(); y = chdtrc( v, x ); DESCRIPTION: Returns the area under the right hand tail (from x to infinity) of the Chi square probability density function with v degrees of freedom: inf. - 1 | | v/2-1 -t/2 P( x | v ) = ----------- | t e dt v/2 - | | 2 | (v/2) - x where x is the Chi-square variable. The incomplete gamma integral is used, according to the formula y = chdtr( v, x ) = igamc( v/2.0, x/2.0 ). The arguments must both be positive. ACCURACY: See igamc(). ERROR MESSAGES: message condition value returned chdtrc domain x < 0 or v < 1 0.0 |
chdtri [Ocephes] | Inverse of complemented Chi-square distribution SYNOPSIS: double df, x, y, chdtri(); x = chdtri( df, y ); DESCRIPTION: Finds the Chi-square argument x such that the integral from x to infinity of the Chi-square density is equal to the given cumulative probability y. This is accomplished using the inverse gamma integral function and the relation x/2 = igami( df/2, y ); ACCURACY: See igami.c. ERROR MESSAGES: message condition value returned chdtri domain y < 0 or y > 1 0.0 v < 1 |
E | |
erf [Ocephes] | Error function SYNOPSIS: double x, y, erf(); y = erf( x ); DESCRIPTION: The integral is x - 2 | | 2 erf(x) = -------- | exp( - t ) dt. sqrt(pi) | | - 0 The magnitude of x is limited to 9.231948545 for DEC arithmetic; 1 or -1 is returned outside this range. For 0 <= |x| < 1, erf(x) = x * P4(x**2)/Q5(x**2); otherwise erf(x) = 1 - erfc(x). ACCURACY: Relative error: arithmetic domain # trials peak rms DEC 0,1 14000 4.7e-17 1.5e-17 IEEE 0,1 30000 3.7e-16 1.0e-16 |
erfc [Ocephes] | Complementary error function SYNOPSIS: double x, y, erfc(); y = erfc( x ); DESCRIPTION: 1 - erf(x) = inf. - 2 | | 2 erfc(x) = -------- | exp( - t ) dt sqrt(pi) | | - x For small x, erfc(x) = 1 - erf(x); otherwise rational approximations are computed. A special function expx2.c is used to suppress error amplification in computing exp(-x^2). ACCURACY: Relative error: arithmetic domain # trials peak rms IEEE 0,26.6417 30000 1.3e-15 2.2e-16 ERROR MESSAGES: message condition value returned erfc underflow x > 9.231948545 (DEC) 0.0. |
expx2 [Ocephes] | Exponential of squared argument SYNOPSIS: double x, y, expx2(); int sign; y = expx2( x, sign ); DESCRIPTION: Computes y = exp(x*x) while suppressing error amplification that would ordinarily arise from the inexactness of the exponential argument x*x. If sign < 0, the result is inverted; i.e., y = exp(-x*x) . ACCURACY: Relative error: arithmetic domain # trials peak rms IEEE -26.6, 26.6 10^7 3.9e-16 8.9e-17 |
F | |
fdtr [Ocephes] | F distribution SYNOPSIS: int df1, df2; double x, y, fdtr(); y = fdtr( df1, df2, x ); DESCRIPTION: Returns the area from zero to x under the F density function (also known as Snedcor's density or the variance ratio density). This is the density of x = (u1/df1)/(u2/df2), where u1 and u2 are random variables having Chi square distributions with df1 and df2 degrees of freedom, respectively. The incomplete beta integral is used, according to the formula P(x) = incbet( df1/2, df2/2, (df1*x/(df2 + df1*x) ). The arguments a and b are greater than zero, and x is nonnegative. ACCURACY: Tested at random points (a,b,x). x a,b Relative error: arithmetic domain domain # trials peak rms IEEE 0,1 0,100 100000 9.8e-15 1.7e-15 IEEE 1,5 0,100 100000 6.5e-15 3.5e-16 IEEE 0,1 1,10000 100000 2.2e-11 3.3e-12 IEEE 1,5 1,10000 100000 1.1e-11 1.7e-13 See also incbet.c. ERROR MESSAGES: message condition value returned fdtr domain a<0, b<0, x<0 0.0 |
fdtrc [Ocephes] | Complemented F distribution SYNOPSIS: int df1, df2; double x, y, fdtrc(); y = fdtrc( df1, df2, x ); DESCRIPTION: Returns the area from x to infinity under the F density function (also known as Snedcor's density or the variance ratio density). inf. - 1 | | a-1 b-1 1-P(x) = ------ | t (1-t) dt B(a,b) | | - x The incomplete beta integral is used, according to the formula P(x) = incbet( df2/2, df1/2, (df2/(df2 + df1*x) ). ACCURACY: Tested at random points (a,b,x) in the indicated intervals. x a,b Relative error: arithmetic domain domain # trials peak rms IEEE 0,1 1,100 100000 3.7e-14 5.9e-16 IEEE 1,5 1,100 100000 8.0e-15 1.6e-15 IEEE 0,1 1,10000 100000 1.8e-11 3.5e-13 IEEE 1,5 1,10000 100000 2.0e-11 3.0e-12 See also incbet.c. ERROR MESSAGES: message condition value returned fdtrc domain a<0, b<0, x<0 0.0 |
fdtri [Ocephes] | Inverse of complemented F distribution SYNOPSIS: int df1, df2; double x, p, fdtri(); x = fdtri( df1, df2, p ); DESCRIPTION: Finds the F density argument x such that the integral from x to infinity of the F density is equal to the given probability p. This is accomplished using the inverse beta integral function and the relations z = incbi( df2/2, df1/2, p ) x = df2 (1-z) / (df1 z). Note: the following relations hold for the inverse of the uncomplemented F distribution: z = incbi( df1/2, df2/2, p ) x = df2 z / (df1 (1-z)). ACCURACY: Tested at random points (a,b,p). a,b Relative error: arithmetic domain # trials peak rms For p between .001 and 1: IEEE 1,100 100000 8.3e-15 4.7e-16 IEEE 1,10000 100000 2.1e-11 1.4e-13 For p between 10^-6 and 10^-3: IEEE 1,100 50000 1.3e-12 8.4e-15 IEEE 1,10000 50000 3.0e-12 4.8e-14 See also fdtrc.c. ERROR MESSAGES: message condition value returned fdtri domain p <= 0 or p > 1 0.0 v < 1 |
G | |
gamma [Ocephes] | gamma x computes the gamma function for x , this is the extension of the
factorial function to real numbers.
|
gdtr [Ocephes] | 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 [Ocephes] | 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 |
I | |
igam [Ocephes] | igam a x computes the regularized (divided by gamma a )
lower incomplete (integrate from 0 to x ) gamma function.
|
igamc [Ocephes] | igamc a x computes the regularized (divided by gamma a )
uppwer incomplete (integrate x to infinity ) gamma function.
|
igami [Ocephes] | Inverse of complemented imcomplete gamma integral SYNOPSIS: double a, x, p, igami(); x = igami( a, p ); DESCRIPTION: Given p, the function finds x such that igamc( a, x ) = p. Starting with the approximate value 3 x = a t where t = 1 - d - ndtri(p) sqrt(d) and d = 1/9a, the routine performs up to 10 Newton iterations to find the root of igamc(a,x) - p = 0. ACCURACY: Tested at random a, p in the intervals indicated. a p Relative error: arithmetic domain domain # trials peak rms IEEE 0.5,100 0,0.5 100000 1.0e-14 1.7e-15 IEEE 0.01,0.5 0,0.5 100000 9.0e-14 3.4e-15 IEEE 0.5,10000 0,0.5 20000 2.3e-13 3.8e-14 |
incbet [Ocephes] | Incomplete beta integral SYNOPSIS: double a, b, x, y, incbet(); y = incbet( a, b, x ); DESCRIPTION: Returns incomplete beta integral of the arguments, evaluated from zero to x. The function is defined as x - - | (a+b) | | a-1 b-1 ----------- | t (1-t) dt. - - | | | (a) | (b) - 0 The domain of definition is 0 <= x <= 1. In this implementation a and b are restricted to positive values. The integral from x to 1 may be obtained by the symmetry relation 1 - incbet( a, b, x ) = incbet( b, a, 1-x ). The integral is evaluated by a continued fraction expansion or, when b*x is small, by a power series. ACCURACY: Tested at uniformly distributed random points (a,b,x) with a and b in "domain" and x between 0 and 1. Relative error arithmetic domain # trials peak rms IEEE 0,5 10000 6.9e-15 4.5e-16 IEEE 0,85 250000 2.2e-13 1.7e-14 IEEE 0,1000 30000 5.3e-12 6.3e-13 IEEE 0,10000 250000 9.3e-11 7.1e-12 IEEE 0,100000 10000 8.7e-10 4.8e-11 Outputs smaller than the IEEE gradual underflow threshold were excluded from these statistics. ERROR MESSAGES: message condition value returned incbet domain x<0, x>1 0.0 incbet underflow 0.0 |
incbi [Ocephes] | Inverse of incomplete beta integral SYNOPSIS: double a, b, x, y, incbi(); x = incbi( a, b, y ); DESCRIPTION: Given y, the function finds x such that incbet( a, b, x ) = y . The routine performs interval halving or Newton iterations to find the root of incbet(a,b,x) - y = 0. ACCURACY: Relative error: x a,b arithmetic domain domain # trials peak rms IEEE 0,1 .5,10000 50000 5.8e-12 1.3e-13 IEEE 0,1 .25,100 100000 1.8e-13 3.9e-15 IEEE 0,1 0,5 50000 1.1e-12 5.5e-15 VAX 0,1 .5,100 25000 3.5e-14 1.1e-15 With a and b constrained to half-integer or integer values: IEEE 0,1 .5,10000 50000 5.8e-12 1.1e-13 IEEE 0,1 .5,100 100000 1.7e-14 7.9e-16 With a = .5, b constrained to half-integer or integer values: IEEE 0,1 .5,10000 10000 8.3e-11 1.0e-11 |
L | |
lgam [Ocephes] | lgam x computes the logarithm of the gamma function.
|
N | |
nbdtr [Ocephes] | Negative binomial distribution SYNOPSIS: int k, n; double p, y, nbdtr(); y = nbdtr( k, n, p ); DESCRIPTION: Returns the sum of the terms 0 through k of the negative binomial distribution: k -- ( n+j-1 ) n j > ( ) p (1-p) -- ( j ) j=0 In a sequence of Bernoulli trials, this is the probability that k or fewer failures precede the nth success. The terms are not computed individually; instead the incomplete beta integral is employed, according to the formula y = nbdtr( k, n, p ) = incbet( n, k+1, p ). The arguments must be positive, with p ranging from 0 to 1. ACCURACY: Tested at random points (a,b,p), with p between 0 and 1. a,b Relative error: arithmetic domain # trials peak rms IEEE 0,100 100000 1.7e-13 8.8e-15 See also incbet.c. |
nbdtrc [Ocephes] | Complemented negative binomial distribution SYNOPSIS: int k, n; double p, y, nbdtrc(); y = nbdtrc( k, n, p ); DESCRIPTION: Returns the sum of the terms k+1 to infinity of the negative binomial distribution: inf -- ( n+j-1 ) n j > ( ) p (1-p) -- ( j ) j=k+1 The terms are not computed individually; instead the incomplete beta integral is employed, according to the formula y = nbdtrc( k, n, p ) = incbet( k+1, n, 1-p ). The arguments must be positive, with p ranging from 0 to 1. ACCURACY: Tested at random points (a,b,p), with p between 0 and 1. a,b Relative error: arithmetic domain # trials peak rms IEEE 0,100 100000 1.7e-13 8.8e-15 See also incbet.c. |
nbdtri [Ocephes] | Functional inverse of negative binomial distribution SYNOPSIS: int k, n; double p, y, nbdtri(); p = nbdtri( k, n, y ); DESCRIPTION: Finds the argument p such that nbdtr(k,n,p) is equal to y. ACCURACY: Tested at random points (a,b,y), with y between 0 and 1. a,b Relative error: arithmetic domain # trials peak rms IEEE 0,100 100000 1.5e-14 8.5e-16 See also incbi.c. |
ndtr [Ocephes] | Normal distribution function SYNOPSIS: double x, y, ndtr(); y = ndtr( x ); DESCRIPTION: Returns the area under the Gaussian probability density function, integrated from minus infinity to x: x - 1 | | 2 ndtr(x) = --------- | exp( - t /2 ) dt sqrt(2pi) | | - -inf. = ( 1 + erf(z) ) / 2 = erfc(z) / 2 where z = x/sqrt(2). Computation is via the functions erf and erfc with care to avoid error amplification in computing exp(-x^2). ACCURACY: Relative error: arithmetic domain # trials peak rms IEEE -13,0 30000 1.3e-15 2.2e-16 ERROR MESSAGES: message condition value returned erfc underflow x > 37.519379347 0.0 |
ndtri [Ocephes] | ndtri p computes the value x such that the integral of the normal
probability density function from neg_infinity to x is p .
|
P | |
pdtr [Ocephes] | Poisson distribution SYNOPSIS: int k; double m, y, pdtr(); y = pdtr( k, m ); DESCRIPTION: Returns the sum of the first k terms of the Poisson distribution: k j -- -m m > e -- -- j! j=0 The terms are not summed directly; instead the incomplete gamma integral is employed, according to the relation y = pdtr( k, m ) = igamc( k+1, m ). The arguments must both be positive. ACCURACY: See igamc(). |
pdtrc [Ocephes] | Complemented poisson distribution SYNOPSIS: int k; double m, y, pdtrc(); y = pdtrc( k, m ); DESCRIPTION: Returns the sum of the terms k+1 to infinity of the Poisson distribution: inf. j -- -m m > e -- -- j! j=k+1 The terms are not summed directly; instead the incomplete gamma integral is employed, according to the formula y = pdtrc( k, m ) = igam( k+1, m ). The arguments must both be positive. ACCURACY: See igam.c. |
pdtri [Ocephes] | Inverse Poisson distribution SYNOPSIS: int k; double m, y, pdtr(); m = pdtri( k, y ); DESCRIPTION: Finds the Poisson variable x such that the integral from 0 to x of the Poisson density is equal to the given probability y. This is accomplished using the inverse gamma integral function and the relation m = igami( k+1, y ). ACCURACY: See igami.c. ERROR MESSAGES: message condition value returned pdtri domain y < 0 or y >= 1 0.0 k < 0 |
S | |
stdtr [Ocephes] | Student's t distribution SYNOPSIS: double t, stdtr(); short k; y = stdtr( k, t ); DESCRIPTION: Computes the integral from minus infinity to t of the Student t distribution with integer k > 0 degrees of freedom: t - | | - | 2 -(k+1)/2 | ( (k+1)/2 ) | ( x ) ---------------------- | ( 1 + --- ) dx - | ( k ) sqrt( k pi ) | ( k/2 ) | | | - -inf. Relation to incomplete beta integral: 1 - stdtr(k,t) = 0.5 * incbet( k/2, 1/2, z ) where z = k/(k + t**2). For t < -2, this is the method of computation. For higher t, a direct method is derived from integration by parts. Since the function is symmetric about t=0, the area under the right tail of the density is found by calling the function with -t instead of t. ACCURACY: Tested at random 1 <= k <= 25. The "domain" refers to t. Relative error: arithmetic domain # trials peak rms IEEE -100,-2 50000 5.9e-15 1.4e-15 IEEE -2,100 500000 2.7e-15 4.9e-17 |
stdtri [Ocephes] | stdtri k p computes the value x such that the integral
(from neg_infinity to x ) of the Student's T probability density
function, with k degrees of freedom is p .
|