g01zu is used to initialize methods g01eu and g01mu.
It is intended to be used before a call to g01eu or g01mu.

Syntax

C#
public static void g01zu(
	double rkappa,
	double beta2,
	int mode,
	out double xl,
	out double xu,
	double[] rcomm,
	out int ifail
)
Visual Basic
Public Shared Sub g01zu ( _
	rkappa As Double, _
	beta2 As Double, _
	mode As Integer, _
	<OutAttribute> ByRef xl As Double, _
	<OutAttribute> ByRef xu As Double, _
	rcomm As Double(), _
	<OutAttribute> ByRef ifail As Integer _
)
Visual C++
public:
static void g01zu(
	double rkappa, 
	double beta2, 
	int mode, 
	[OutAttribute] double% xl, 
	[OutAttribute] double% xu, 
	array<double>^ rcomm, 
	[OutAttribute] int% ifail
)
F#
static member g01zu : 
        rkappa : float * 
        beta2 : float * 
        mode : int * 
        xl : float byref * 
        xu : float byref * 
        rcomm : float[] * 
        ifail : int byref -> unit 

Parameters

rkappa
Type: System..::..Double
On entry: the argument κ of the function.
Constraint: 0.01rkappa10.0.
beta2
Type: System..::..Double
On entry: the argument β2 of the function.
Constraint: 0.0beta21.0.
mode
Type: System..::..Int32
On entry: if mode=0, then g01mu is to be called after the call to g01zu. Otherwise, g01eu is to be called.
xl
Type: System..::..Double%
On exit: xl, a threshold value below which ϕVλ;κ,β2 will be set to zero by g01mu and ΦVλ;κ,β2 will be set to zero by g01eu if λ<xl.
xu
Type: System..::..Double%
On exit: xu, a threshold value above which ϕVλ;κ,β2 will be set to zero by g01mu and ΦVλ;κ,β2 will be set to unity by g01eu if λ>xu.
rcomm
Type: array<System..::..Double>[]()[][]
An array of size [322]
On exit: this parameter should be passed unchanged to g01eu or g01mu.
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

g01zu initializes the array rcomm for use by g01eu or g01mu in the evaluation of the Vavilov functions ϕVλ;κ,β2 and ΦVλ;κ,β2 respectively.
Multiple calls to g01eu or g01mu can be made following a single call to g01zu, provided that rkappa or beta2 do not change, and that either all calls are to g01eu or all calls are to g01mu. If you wish to call both g01eu and g01mu, then you will need to initialize both separately.

References

Schorr B (1974) Programs for the Landau and the Vavilov distributions and the corresponding random numbers Comp. Phys. Comm. 7 215–224

Error Indicators and Warnings

Errors or warnings detected by the method:
ifail=1
On entry,rkappa<0.01,
orrkappa>10.0,
orbeta2<0.0,
orbeta2>1.0.
ifail=2
The initialization has been abandoned due to an internal error. This error exit is unlikely to occur, but if it does change the values of rkappa and/or beta2 and rerun g01zu.
ifail=-9000
An error occured, see message report.
ifail=-8000
Negative dimension for array value
ifail=-6000
Invalid Parameters value

Accuracy

At least five significant digits are usually correct.

Parallelism and Performance

None.

Further Comments

None.

Example

See Section in g01mu and g01eu.

See Also