A Julia package for creating distinct substreams from a whole dSFMT period.
For a given integer N, a jump function executes the N-step jump which allows to obtain the state of dSFMT after N steps generation. This is equivalent to call the dSFMT double precision floating point number generation 2N times with discarding the outputs. A typical usage of a jump function is to obtain distinct substreams from a whole period of pseudorandom number sequence generated by dSFMT.
Julia uses dSFMT implementation of Mersenne Twister PRNG as a default RNG. Julia binary is compiled with dSFMT that has period 19937. By default dSFMTjump package uses the same period as Julia PRNG and a default jump polynomial has 10^20 steps.
Refer to dSFMT Jump for a jump polynomial generation process.
Based on an original version of dSFMTJump by Mutsuo Saito & Makoto Matsumoto.
Call jump
function with PRGN seed value, number or generated substreams within the PRNG period
and optionally jump polynomial string that could be different from default one. The default jump polynomial has 10^20 steps.
The jump
call returns array of Mersenne Twister PRNG objects which are initialized with the same seed value and pointed to a different places, which stand apart at a number of states specified by a jump polynomial, in a particular period.
using dSFMTjump
mts = jump(seed, number_of_substreams) # uses default jump polynomial
# or
mts = jump(seed, number_of_substreams, jumppoly="<jump_polynomial>")