nag_rngs_hypergeometric (g05mlc) generates a vector of pseudorandom integers from the discrete hypergeometric distribution of the number of specified items in a sample of size , taken from a population of size with specified items in it.
nag_rngs_hypergeometric (g05mlc) generates a vector of integers,
, from a discrete hypergeometric distribution, where the probability of
is
The variates can be generated with or without using a search table and index. If a search table is used then it is stored with the index in a reference vector and subsequent calls to nag_rngs_hypergeometric (g05mlc) with the same parameter values can then use this reference vector to generate further variates. The reference array is generated by a recurrence relation if , otherwise Stirling's approximation is used.
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_hypergeometric (g05mlc).
- 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_hypergeometric (g05mlc).
- Set up reference vector and generate variates.
- Generate variates without using the reference vector.
Constraint:
, , or .
- 2:
ns – IntegerInput
On entry: , the sample size of the hypergeometric distribution.
Constraint:
.
- 3:
np – IntegerInput
On entry: , the population size of the hypergeometric distribution.
Constraint:
.
- 4:
m – IntegerInput
On entry: , the number of specified items of the hypergeometric distribution.
Constraint:
.
- 5:
n – IntegerInput
-
On entry: the number of pseudorandom numbers to be generated.
Constraint:
.
- 6:
x[n] – IntegerOutput
On exit: the pseudorandom numbers from the specified hypergeometric distribution.
- 7:
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).
- 8:
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.
- 9:
r[] – doubleCommunication Array
-
Note: the dimension,
dim, of the array
r
must be at least
.
On entry: if , the reference vector from the previous call to nag_rngs_hypergeometric (g05mlc).
On exit: the reference vector.
- 10:
fail – NagError *Input/Output
-
The NAG error argument (see
Section 3.6 in the Essential Introduction).
Not applicable.
None.
The example program prints
pseudorandom integers from a hypergeometric distribution with
,
and
, generated by a single call to nag_rngs_hypergeometric (g05mlc), after initialization by
nag_rngs_init_repeatable (g05kbc).
None.