Low discrepancy (quasi-random) sequences are used in numerical integration, simulation and optimization. Like pseudorandom numbers they are uniformly distributed but they are not statistically independent, rather they are designed to give more even distribution in multidimensional space (uniformity). Therefore they are often more efficient than pseudorandom numbers in multidimensional Monte–Carlo methods.
nag_quasi_random_normal (g05ybc) generates multidimensional quasi-random sequences with a Gaussian or log-normal probability distribution. The sequences are generated in pairs using the Box–Muller method. This means that an even number of dimensions are required by this function. If an odd number of dimensions are required then the extra dimension must be computed, but can then be ignored.
On exit: the random numbers, generated in pairs. That is, on the first call with , contains the first quasi-random number for the th dimension. On the next call contains the second quasi-random number for the th dimension, etc..
9:
gf – Nag_QuasiRandom *Communication Structure
Workspace used to communicate information between calls to nag_quasi_random_normal (g05ybc). The contents of this structure should not be changed between calls.
10:
fail – NagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).
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.
NE_TOO_MANY_CALLS
Too many calls to generator.
7 Accuracy
Not applicable.
8 Further Comments
The maximum length of the generated sequences is , this should be adequate for practical purposes. For more information see nag_quasi_random_uniform (g05yac).
9 Example
This example program calculates the sum of the expected values of the kurtosis of independent Gaussian samples. A quasi-random Faure sequence generator is used.