class RandomLib::SFMT19937< RandomType >
The SFMT random number engine.
This provides an implementation of the SIMD-oriented Fast Mersenne Twister random number engine, SFMT. See
An Application of Finite Field: Design and Implementation of 128-bit Instruction-Based Fast Pseudorandom Number Generator,
Master's Thesis, Dept. of Math., Hiroshima University (Feb. 2007).
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/M062821.pdf Mutsuo Saito and Makoto Matsumoto,
SIMD-oriented Fast Mersenne Twister: a 128-bit Pseudorandom Number Generator,
accepted in the proceedings of MCQMC2006
The template argument gives the type RandomType of the "natural" result. This incorporates the bit width and the C++ type of the result. The 32-bit and 64-bit versions of SFMT19937 produce the same sequences and the differing only in whether how the state is represented. The implementation includes a version using 128-bit SSE2 instructions. On machines without these instructions, portable implementations using traditional operations are provided. With the same starting seed, SRandom32::Ran64() and SRandom64::Ran64() produces the same sequences. Similarly SRandom64::Ran32() produces every other member of the sequence produced by SRandom32::Ran32().
The class chiefly supplies the method for advancing the state by Transition.
- Template Parameters
|RandomType||the type of the results, either Random_u32 or Random_u64.|
Written by Charles Karney firstname.lastname@example.org@email@example.com@m..com and licensed under the MIT/X11 License. For more information, see http://randomlib.sourceforge.net/
Definition at line 233 of file RandomAlgorithm.hpp.