g05td generates a vector of pseudorandom integers from a discrete distribution with a given PDF (probability density function) or CDF (cumulative distribution function) .
Syntax
C# |
---|
public static void g05td( int mode, int n, double[] p, int np, int ip1, int itype, double[] r, G05..::..G05State g05state, int[] x, out int ifail ) |
Visual Basic |
---|
Public Shared Sub g05td ( _ mode As Integer, _ n As Integer, _ p As Double(), _ np As Integer, _ ip1 As Integer, _ itype As Integer, _ r As Double(), _ g05state As G05..::..G05State, _ x As Integer(), _ <OutAttribute> ByRef ifail As Integer _ ) |
Visual C++ |
---|
public: static void g05td( int mode, int n, array<double>^ p, int np, int ip1, int itype, array<double>^ r, G05..::..G05State^ g05state, array<int>^ x, [OutAttribute] int% ifail ) |
F# |
---|
static member g05td : mode : int * n : int * p : float[] * np : int * ip1 : int * itype : int * r : float[] * g05state : G05..::..G05State * x : int[] * ifail : int byref -> unit |
Parameters
- mode
- Type: System..::..Int32On entry: a code for selecting the operation to be performed by the method.
- 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.
Constraint: , , or .
- n
- Type: System..::..Int32On entry: , the number of pseudorandom numbers to be generated.Constraint: .
- p
- Type: array<System..::..Double>[]()[][]An array of size [np]On entry: the PDF or CDF of the distribution.Constraints:
- , for ;
- if , ;
- if , .
- np
- Type: System..::..Int32On entry: the number of values supplied in p defining the PDF or CDF of the discrete distribution.Constraint: .
- ip1
- Type: System..::..Int32On entry: the value of the variate, a whole number, to which the probability in corresponds.
- itype
- Type: System..::..Int32On entry: indicates the type of information contained in p.Constraint: or .
- r
- 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.
- g05state
- Type: NagLibrary..::..G05..::..G05StateAn Object of type G05.G05State.
- x
- Type: array<System..::..Int32>[]()[][]An array of size [n]On exit: contains pseudorandom numbers from the specified discrete distribution.
- ifail
- Type: System..::..Int32%On exit: unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).
Description
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.
References
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
Error Indicators and Warnings
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.
Accuracy
Not applicable.
Parallelism and Performance
None.
Further Comments
None.