nag_rand_hypergeometric (g05tec) 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_rand_hypergeometric (g05tec) generates
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_rand_hypergeometric (g05tec) 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_rand_init_repeatable (g05kfc) (for a repeatable sequence if computed sequentially) or
nag_rand_init_nonrepeatable (g05kgc) (for a non-repeatable sequence) must be called prior to the first call to nag_rand_hypergeometric (g05tec).
- 1:
mode – Nag_ModeRNGInput
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_rand_hypergeometric (g05tec).
- Set up reference vector and generate variates.
- Generate variates without using the reference vector.
Constraint:
, , or .
- 2:
n – IntegerInput
-
On entry: , the number of pseudorandom numbers to be generated.
Constraint:
.
- 3:
ns – IntegerInput
On entry: , the sample size of the hypergeometric distribution.
Constraint:
.
- 4:
np – IntegerInput
On entry: , the population size of the hypergeometric distribution.
Constraint:
.
- 5:
m – IntegerInput
On entry: , the number of specified items of the hypergeometric distribution.
Constraint:
.
- 6:
r[lr] – doubleCommunication Array
On entry: if
, the reference vector from the previous call to nag_rand_hypergeometric (g05tec).
If
,
r is not referenced by nag_rand_hypergeometric (g05tec).
On exit: the reference vector.
- 7:
lr – IntegerInput
On entry: the dimension of the array
r.
Suggested values:
- if , approximately;
- otherwise .
Constraints:
- if or , lr must not be too small, but the limit is too complicated to specify;
- if , lr must remain unchanged from the previous call to nag_rand_hypergeometric (g05tec).
- 8:
state[] – IntegerCommunication Array
-
Note: the actual argument supplied must be the array
state supplied to the initialization functions
nag_rand_init_repeatable (g05kfc) or
nag_rand_init_nonrepeatable (g05kgc).
On entry: contains information on the selected base generator and its current state.
On exit: contains updated information on the state of the generator.
- 9:
x[n] – IntegerOutput
On exit: the pseudorandom numbers from the specified hypergeometric distribution.
- 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_rand_hypergeometric (g05tec), after initialization by
nag_rand_init_repeatable (g05kfc).
None.