naginterfaces.library.rand.init_leapfrog¶
- naginterfaces.library.rand.init_leapfrog(n, k, statecomm)[source]¶
init_leapfrog
allows for the generation of multiple, independent, sequences of pseudorandom numbers using the leap-frog method.For full information please refer to the NAG Library document for g05kh
https://support.nag.com/numeric/nl/nagdoc_30.3/flhtml/g05/g05khf.html
- Parameters
- nint
, the total number of sequences required.
- kint
, the number of the current sequence.
- statecommdict, RNG communication object, modified in place
RNG communication structure.
This argument must have been initialized by a prior call to
init_repeat()
orinit_nonrepeat()
.
- Raises
- NagValueError
- (errno )
On entry, .
Constraint: .
- (errno )
On entry, and .
Constraint: .
- (errno )
On entry, [‘state’] vector has been corrupted or not initialized.
- (errno )
On entry, cannot use leap-frog with the base generator defined by [‘state’].
- Notes
init_leapfrog
adjusts a base generator to allow multiple, independent, sequences of pseudorandom numbers to be generated via the leap-frog method (see the G05 Introduction for details).If, prior to calling
init_leapfrog
the base generator defined by [‘state’] would produce random numbers , then after callinginit_leapfrog
the generator will produce random numbers , where . Note that the first random numbers are discarded when using leap-frog.One of the initialization functions
init_repeat()
(for a repeatable sequence if computed sequentially) orinit_nonrepeat()
(for a non-repeatable sequence) must be called prior to the first call toinit_leapfrog
.The leap-frog algorithm can be used in conjunction with the NAG basic generator, both the Wichmann–Hill I and Wichmann–Hill II generators, the Mersenne Twister and L’Ecuyer.
- References
Knuth, D E, 1981, The Art of Computer Programming (Volume 2), (2nd Edition), Addison–Wesley