Chapter 9: Special Functions

gamma_cdf

Evaluates the gamma distribution function.

Synopsis

#include <imsl.h>

float imsl_f_gamma_cdf (float x, float a)

The type double procedure is imsl_d_gamma_cdf.

Required Arguments

float x   (Input)
Argument for which the gamma distribution function is to be evaluated.

float a   (Input)
The shape parameter of the gamma distribution. This parameter must be positive.

Return Value

The probability that a gamma random variable takes a value less than or equal to x.

Description

The function imsl_f_gamma_cdf evaluates the distribution function, F, of a gamma random variable with shape parameter a, that is,

where Γ(×) is the gamma function. (The gamma function is the integral from zero to infinity of the same integrand as above). The value of the distribution function at the point x is the probability that the random variable takes a value less than or equal to x.

The gamma distribution is often defined as a two-parameter distribution with a scale parameter b (which must be positive) or even as a three-parameter distribution in which the third parameter c is a location parameter.

In the most general case, the probability density function over
(c¥) is

If T is such a random variable with parameters a, b, and c, the probability that
T  t0 can be obtained from imsl_f_gamma_cdf by setting x = (t0  c)/b.

If x is less than a or if x is less than or equal to 1.0, imsl_f_gamma_cdf uses a series expansion. Otherwise, a continued fraction expansion is used. (See Abramowitz and Stegun 1964.)

Example

Let X be a gamma random variable with a shape parameter of four. (In this case, it has an Erlang distribution since the shape parameter is an integer.) This example finds the probability that X is less than 0.5 and the probability that X is between 0.5 and 1.0.

#include <imsl.h>

main()
{
    float       p, x;
    float       a = 4.0;

    x = 0.5;
    p = imsl_f_gamma_cdf(x,a);
    printf("The probability that X is less than 0.5 is %6.4f\n", p);

    x = 1.0;
    p = imsl_f_gamma_cdf(x,a) - p;
    printf("The probability that X is between 0.5 and 1.0 is %6.4f\n", p);
}

Output

The probability that X is less than 0.5 is 0.0018
The probability that X is between 0.5 and 1.0 is 0.0172

Informational Errors

IMSL_LESS_THAN_ZERO                            The input argument, x, is less than zero.

Fatal Errors

IMSL_X_AND_A_TOO_LARGE                     The function overflows because x and a are too large.


Visual Numerics, Inc.
Visual Numerics - Developers of IMSL and PV-WAVE
http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260