g05td generates a vector of pseudorandom integers from a discrete distribution with a given PDF (probability density function) or CDF (cumulative distribution function) .
- Type: System..::..Int32On entry: a code for selecting the operation to be performed by the method.
Constraint: , , or .
- Set up reference vector only.
- Generate variates using reference vector set up in a prior call to g05td.
- Set up reference vector and generate variates.
- Generate variates without using the reference vector.
- Type: System..::..Int32On entry: , the number of pseudorandom numbers to be generated.Constraint: .
- Type: array<System..::..Double>()An array of size [np]On entry: the PDF or CDF of the distribution.Constraints:
- , for ;
- if , ;
- if , .
- Type: System..::..Int32On entry: the number of values supplied in p defining the PDF or CDF of the discrete distribution.Constraint: .
- Type: System..::..Int32On entry: the value of the variate, a whole number, to which the probability in corresponds.
- Type: System..::..Int32On entry: indicates the type of information contained in p.Constraint: or .
- Type: array<System..::..Double>()An array of size [lr]On entry: if , the reference vector from the previous call to g05td.On exit: the reference vector.
- Type: array<System..::..Int32>()An array of size [n]On exit: contains pseudorandom numbers from the specified discrete distribution.
g05td 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.
Setting up the reference vector and subsequent generation of variates can each be performed by separate calls to g05td or may be combined in a single call.
One of the initialization methods (G05KFF not in this release) (for a repeatable sequence if computed sequentially) or (G05KGF not in this release) (for a non-repeatable sequence) must be called prior to the first call to g05td.
Kendall M G and Stuart A (1969) The Advanced Theory of Statistics (Volume 1) (3rd Edition) Griffin
Knuth D E (1981) The Art of Computer Programming (Volume 2) (2nd Edition) Addison–Wesley
Errors or warnings detected by the method:
- On entry, , or .
- On entry, .
- With , for at least one value of .With , the sum of , for , does not equal .With , the values of are not all in non-descending order.
- On entry, .
- On entry, or .
- The value of np, itype or ip1 is not the same as when r was set up in a previous call to g05td with or .On entry, the r vector was not initialized correctly, or has been corrupted.
- On entry, lr is too small when or .
On entry, state vector was not initialized or has been corrupted.