nag_rngs_gen_discrete (g05mzc) generates a vector of pseudorandom integers from a discrete distribution with a given PDF (probability density function) or CDF (cumulative distribution function) .
nag_rngs_gen_discrete (g05mzc) generates a sequence of
integers
, from a discrete distribution defined by information supplied in
p. This may either be the PDF or CDF of the distribution. A reference vector is first set up to contain the CDF of the distribution in its higher elements, followed by an index. The full specifications of the reference vector are as follows.
- the number of elements of index, .
- a check number to make sure that the values of ip1 and comp_type haven't changed when calling nag_rngs_gen_discrete (g05mzc) with .
- the number of values the variates can take (i.e., the first value of such that ).
- .
- the space available for indexing .
- , for , the CDF.
- , for .
Setting up the reference vector and subsequent generation of variates can each be performed by separate calls to nag_rngs_gen_discrete (g05mzc) or may be combined in a single call.
One of the initialization functions
nag_rngs_init_repeatable (g05kbc) (for a repeatable sequence if computed sequentially) or
nag_rngs_init_nonrepeatable (g05kcc) (for a non-repeatable sequence) must be called prior to the first call to nag_rngs_gen_discrete (g05mzc).
- 1:
mode – IntegerInput
On entry: a code for selecting the operation to be performed by the function.
- Set up reference vector only.
- Generate variates using reference vector set up in a prior call to nag_rngs_gen_discrete (g05mzc).
- Set up reference vector and generate variates.
Constraint:
, or .
- 2:
p[np] – const doubleInput
On entry: the PDF or CDF of the distribution.
- 3:
np – IntegerInput
On entry:
the number of values supplied in
p defining the PDF or CDF of the discrete distribution.
Constraint:
.
- 4:
ip1 – IntegerInput
On entry: the value of the variate, a whole number, to which the probability in corresponds.
- 5:
comp_type – Nag_ComputeTypeInput
On entry: indicates the type of information contained in
p.
- p contains a probability distribution function (PDF).
- p contains a cumulative distribution function (CDF).
Constraint:
or .
- 6:
n – IntegerInput
-
On entry: , the number of pseudorandom numbers to be generated.
Constraint:
.
- 7:
x[n] – IntegerOutput
On exit: contains pseudorandom numbers from the specified discrete distribution.
- 8:
igen – IntegerInput
-
On entry: must contain the identification number for the generator to be used to return a pseudorandom number and should remain unchanged following initialization by a prior call to
nag_rngs_init_repeatable (g05kbc) or
nag_rngs_init_nonrepeatable (g05kcc).
- 9:
iseed[] – IntegerCommunication Array
-
On entry: contains values which define the current state of the selected generator.
On exit: contains updated values defining the new state of the selected generator.
- 10:
r[] – doubleCommunication Array
-
On entry: if , the reference vector from the previous call to nag_rngs_gen_discrete (g05mzc).
On exit: the reference vector.
- 11:
fail – NagError *Input/Output
-
The NAG error argument (see
Section 3.6 in the Essential Introduction).
Not applicable.
None.
This example prints
pseudorandom variates from a discrete distribution whose PDF,
, is defined as follows:
The reference vector is set up and and the variates are generated by a single call to nag_rngs_gen_discrete (g05mzc), after initialization by
nag_rngs_init_repeatable (g05kbc).
None.