Previous Page | Next Page

Functions and CALL Routines

RANGAM Function



Returns a random variate from a gamma distribution.
Category: Random Number
Tip: If you want to change the seed value during execution, you must use the CALL RANGAM routine instead of the RANGAM function.

Syntax
Arguments
Details
Comparisons
See Also

Syntax

RANGAM(seed,a)


Arguments

seed

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

Range: seed < 231-1
See: Seed Values for more information about seed values
a

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

Range: a > 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) (See References) is used. For a [le] 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 and CALL routines:

RAND Function

CALL RANGAM Routine

Previous Page | Next Page | Top of Page