Chapter 6 Random number generators
6.1 General remarks
The random number generators (RNG) are one of the crucialer points of Monte Carlo calculations, hence, giving those their “randomness”. A decent multipurpose random generator covers
of the random numbers. Therefore, special care is taken for the choice of the RNGs in WHIZARD. It is stated that WHIZARD utilizes pseudo-RNGs, which are based on one (or more) recursive algorithm(s) and start-seed(s) to have reproducible sequences of numbers. In contrast, a genuine random generator relies on physical processes.
WHIZARD ships with two completely different random number generators which can be selected by setting the SINDARIN option
Altough, WHIZARD sets a default seed, it is adviced to use a different one
note that some RNGs do not allow certain seed values (e.g. zero seed).
6.2 The TAO Random Number Generator
The TAO (“The Art Of”) random number generator is a lagged Fibonacci generator based upon (signed) 32-bit integer arithmetic and was proposed by Donald E. Knuth and is implemented in the VAMP package. The TAO random number generator is the default RNG of WHIZARD, but can additionally be set as SINDARIN option
The TAO random number generators is a subtractive lagged Fibonacci generator
with lags k = 100 and l = 37 and period length ρ = 230 − 2.
6.3 The RNGStream Generator
The RNGStream  was originally implemented in C++ with floating point arithmetic and has been ported to Fortran2003Ṫhe RNGstream can be selected by the SINDARIN option
The RNGstream supports multiple independent streams and substreams of random numbers which can be directly accessed.
The main advantage of the RNGStream lies in the domain of parallelization where different worker have to access different parts of the random number stream to ensure numerical reproducibility. The RNGstream provides exactly this property with its (sub)stream-driven model.
Unfortunately, the RNGStream can only be used in combination with VAMP2.