NAG CL Interface
g01zuc (init_​vavilov)

1 Purpose

g01zuc is used to initialize functions g01euc and g01muc.
It is intended to be used before a call to g01euc or g01muc.

2 Specification

#include <nag.h>
void  g01zuc (double rkappa, double beta2, Integer mode, double *xl, double *xu, double comm_arr[], NagError *fail)
The function may be called by the names: g01zuc, nag_stat_init_vavilov or nag_init_vavilov.

3 Description

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

4 References

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

5 Arguments

1: rkappa double Input
On entry: the argument κ of the function.
Constraint: 0.01rkappa10.0.
2: beta2 double Input
On entry: the argument β2 of the function.
Constraint: 0.0beta21.0.
3: mode Integer Input
On entry: if mode=0, g01muc is to be called after the call to g01zuc. Otherwise, g01euc is to be called.
4: xl double * Output
On exit: xl, a threshold value below which ϕVλ;κ,β2 will be set to zero by g01muc and ΦVλ;κ,β2 will be set to zero by g01euc if λ<xl.
5: xu double * Output
On exit: xu, a threshold value above which ϕVλ;κ,β2 will be set to zero by g01muc and ΦVλ;κ,β2 will be set to unity by g01euc if λ>xu.
6: comm_arr[322] double Communication Array
On exit: this argument should be passed unchanged to g01euc or g01muc.
7: fail NagError * Input/Output
The NAG error argument (see Section 7 in the Introduction to the NAG Library CL Interface).

6 Error Indicators and Warnings

NE_ALLOC_FAIL
Dynamic memory allocation failed.
See Section 3.1.2 in the Introduction to the NAG Library CL Interface for further information.
NE_BAD_PARAM
On entry, argument value had an illegal value.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
See Section 7.5 in the Introduction to the NAG Library CL Interface for further information.
NE_NO_LICENCE
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library CL Interface for further information.
NE_REAL
On entry, beta2=value.
Constraint: beta21.0.
On entry, beta2=value.
Constraint: beta20.0.
On entry, rkappa=value.
Constraint: rkappa10.0.
On entry, rkappa=value.
Constraint: rkappa0.01.

7 Accuracy

At least five significant digits are usually correct.

8 Parallelism and Performance

g01zuc is not threaded in any implementation.

9 Further Comments

None.

10 Example

See Section 10 in g01muc and g01euc.