g05tj generates a vector of pseudorandom integers from the discrete Poisson distribution with mean λ.

Syntax

C#
public static void g05tj(
	int mode,
	int n,
	double lambda,
	double[] r,
	G05..::..G05State g05state,
	int[] x,
	out int ifail
)
Visual Basic
Public Shared Sub g05tj ( _
	mode As Integer, _
	n As Integer, _
	lambda As Double, _
	r As Double(), _
	g05state As G05..::..G05State, _
	x As Integer(), _
	<OutAttribute> ByRef ifail As Integer _
)
Visual C++
public:
static void g05tj(
	int mode, 
	int n, 
	double lambda, 
	array<double>^ r, 
	G05..::..G05State^ g05state, 
	array<int>^ x, 
	[OutAttribute] int% ifail
)
F#
static member g05tj : 
        mode : int * 
        n : int * 
        lambda : float * 
        r : float[] * 
        g05state : G05..::..G05State * 
        x : int[] * 
        ifail : int byref -> unit 

Parameters

mode
Type: System..::..Int32
On entry: a code for selecting the operation to be performed by the method.
mode=0
Set up reference vector only.
mode=1
Generate variates using reference vector set up in a prior call to g05tj.
mode=2
Set up reference vector and generate variates.
mode=3
Generate variates without using the reference vector.
Constraint: mode=0, 1, 2 or 3.
n
Type: System..::..Int32
On entry: n, the number of pseudorandom numbers to be generated.
Constraint: n0.
lambda
Type: System..::..Double
On entry: λ, the mean of the Poisson distribution.
Constraint: lambda0.0.
r
Type: array<System..::..Double>[]()[][]
An array of size [lr]
On entry: if mode=1, the reference vector from the previous call to g05tj.
If mode=3, r is not referenced.
On exit: if mode3, the reference vector.
g05state
Type: NagLibrary..::..G05..::..G05State
An Object of type G05.G05State.
x
Type: array<System..::..Int32>[]()[][]
An array of size [n]
On exit: the n pseudorandom numbers from the specified Poisson distribution.
ifail
Type: System..::..Int32%
On exit: ifail=0 unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).

Description

g05tj generates n integers xi from a discrete Poisson distribution with mean λ, where the probability of xi=I is
Pxi=I=λI×e-λI!,  I=0,1,,
where λ0.
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 g05tj with the same parameter values can then use this reference vector to generate further variates. The reference array is found using a recurrence relation if λ is less than 50 and by Stirling's formula otherwise.
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 g05tj.

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:
ifail=1
On entry, mode0, 1, 2 or 3.
ifail=2
On entry, n<0.
ifail=3
On entry, lambda<0.0.
mode=0 or 2 and lambda is such that lr would have to be larger than the largest representable integer. Use mode=3 in this case.
ifail=4
On entry, lambda is not the same as when r was set up in a previous call to g05tj with mode=0 or 2.
On entry, the r vector was not initialized correctly, or has been corrupted.
ifail=5
On entry, lr is too small when mode=0 or 2.
ifail=6
On entry,state vector was not initialized or has been corrupted.
ifail=-9000
An error occured, see message report.
ifail=-8000
Negative dimension for array value
ifail=-6000
Invalid Parameters value

Accuracy

Not applicable.

Parallelism and Performance

None.

Further Comments

None.

Example

See Also