std::mersenne_twister_engine (3) - Linux Manuals

std::mersenne_twister_engine: std::mersenne_twister_engine

NAME

std::mersenne_twister_engine - std::mersenne_twister_engine

Synopsis


Defined in header <random>
template<
class UIntType,
size_t w, size_t n, size_t m, size_t r,
UIntType a, size_t u, UIntType d, size_t s, (since C++11)
UIntType b, size_t t,
UIntType c, size_t l, UIntType f
> class mersenne_twister_engine;


mersenne_twister_engine is a random number engine based on Mersenne_Twister algorithm. It produces high quality unsigned integer random numbers of type UIntType on the interval [0, 2w
-1].
The following type aliases define the random number engine with two commonly used parameter sets:


Defined in header <random>
Type Definition
                  std::mersenne_twister_engine<std::uint_fast32_t, 32, 624, 397, 31,
                  0x9908b0df, 11,
mt19937(C++11) 0xffffffff, 7,
                  0x9d2c5680, 15,
                  0xefc60000, 18, 1812433253>
                  32-bit Mersenne Twister by Matsumoto and Nishimura, 1998
                  std::mersenne_twister_engine<std::uint_fast64_t, 64, 312, 156, 31,
                  0xb5026f5aa96619e9, 29,
mt19937_64(C++11) 0x5555555555555555, 17,
                  0x71d67fffeda60000, 37,
                  0xfff7eee000000000, 43, 6364136223846793005>
                  64-bit Mersenne Twister by Matsumoto and Nishimura, 2000

Member types


Member type Definition
result_type The integral type generated by the engine. Results are undefined if this is not an unsigned integral type.

Member functions

Construction and Seeding


              constructs the engine
constructor (public member function)
              sets the current state of the engine
seed (public member function)

Generation


              advances the engine's state and returns the generated value
operator() (public member function)
              advances the engine's state by a specified amount
discard (public member function)

Characteristics


min gets the smallest possible value in the output range
              (public static member function)
[static]


max gets the largest possible value in the output range
              (public static member function)
[static]

Non-member functions


           compares the internal states of two pseudo-random number engines
operator== (function template)
operator!=
           performs stream input and output on pseudo-random number engine
operator<< (function template)
operator>>

Member objects


constexpr size_t word_size the template parameter w, determines the range of values generated by the engine.
                                             (public static member constant)
[static]


constexpr size_t state_size the template parameter n. The engine state is n values of UIntType
                                             (public static member constant)
[static]


constexpr size_t shift_size the template parameter m
                                             (public static member constant)
[static]


constexpr size_t mask_bits the template parameter r, also known as the twist value.
                                             (public static member constant)
[static]


constexpr UIntType xor_mask the template parameter a, the conditional xor-mask.
                                             (public static member constant)
[static]


constexpr size_t tempering_u the template parameter u, first component of the bit-scrambling (tempering) matrix
                                             (public static member constant)
[static]


constexpr UIntType tempering_d the template parameter d, second component of the bit-scrambling (tempering) matrix
                                             (public static member constant)
[static]


constexpr size_t tempering_s the template parameter s, third component of the bit-scrambling (tempering) matrix
                                             (public static member constant)
[static]


constexpr UIntType tempering_b the template parameter b, fourth component of the bit-scrambling (tempering) matrix
                                             (public static member constant)
[static]


constexpr size_t tempering_t the template parameter t, fifth component of the bit-scrambling (tempering) matrix
                                             (public static member constant)
[static]


constexpr UIntType tempering_c the template parameter c, sixth component of the bit-scrambling (tempering) matrix
                                             (public static member constant)
[static]


constexpr size_t tempering_l the template parameter l, seventh component of the bit-scrambling (tempering) matrix
                                             (public static member constant)
[static]


constexpr UIntType initialization_multiplier the template parameter f
                                             (public static member constant)
[static]


constexpr UIntType default_seed the constant value 5489u
                                             (public static member constant)
[static]

Notes


The 10000th consecutive invocation of a default-constructed std::mt19937 is required to produce the value 4123659995.
The 10000th consecutive invocation of a default-constructed std::mt19937_64 is required to produce the value 9981545732273789042