RANGAM Function

Returns a random variate from a gamma distribution.

Category:Random Number
Restriction:This function is not valid on the CAS server.
Tip:If you want to change the seed value during execution, you must use the CALL RANGAM routine instead of the RANGAM function.

Syntax

RANGAM(seed, a)

Required Arguments

seed

is a numeric constant, variable, or expression with an integer value. If seed ≤ 0, the time of day is used to initialize the seed stream.

Rangeseed < 231−1
SeeSeed Values for more information about seed values

a

is a numeric constant, variable, or expression that specifies the shape parameter.

Rangea > 0

Details

The RANGAM function returns a variate that is generated from a gamma distribution with parameter a. For a > 1, an acceptance-rejection method due to Cheng (1977) is used. (See References). For a ≤ 1, an acceptance-rejection method due to Fishman is used (1978, Algorithm G2) (See References).
A gamma variate X with shape parameter ALPHA and scale BETA can be generated:
x=beta*rangam(seed, alpha);
If 2*ALPHA is an integer, a chi-square variate X with 2*ALPHA degrees of freedom can be generated:
x=2*rangam(seed, alpha);
If N is a positive integer, an Erlang variate X can be generated:
x=beta*rangam(seed, N);
It has the distribution of the sum of N independent exponential variates whose means are BETA.
And finally, a beta variate X with parameters ALPHA and BETA can be generated:
y1=rangam(seed, alpha);
y2=rangam(seed, beta);
x=y1/(y1+y2);
For a discussion about seeds and streams of data, as well as examples of using the random-number functions, see Generating Multiple Variables from One Seed in Random-Number Functions.

Comparisons

The CALL RANGAM routine, an alternative to the RANGAM function, gives greater control of the seed and random number streams.

See Also

Functions:
CALL Routines:
Last updated: March 16, 2017