29 Numerics library [numerics]

29.6 Random number generation [rand]

29.6.5 Engines and engine adaptors with predefined parameters [rand.predef]

using minstd_rand0 = linear_congruential_engine<uint_fast32_t, 16807, 0, 2147483647>;

Required behavior: The consecutive invocation of a default-constructed object of type minstd_­rand0 shall produce the value 1043618065.

using minstd_rand = linear_congruential_engine<uint_fast32_t, 48271, 0, 2147483647>;

Required behavior: The consecutive invocation of a default-constructed object of type minstd_­rand shall produce the value 399268537.

using mt19937 = mersenne_twister_engine<uint_fast32_t, 32,624,397,31,0x9908b0df,11,0xffffffff,7,0x9d2c5680,15,0xefc60000,18,1812433253>;

Required behavior: The consecutive invocation of a default-constructed object of type mt19937 shall produce the value 4123659995.

using mt19937_64 = mersenne_twister_engine<uint_fast64_t, 64,312,156,31,0xb5026f5aa96619e9,29, 0x5555555555555555,17, 0x71d67fffeda60000,37, 0xfff7eee000000000,43, 6364136223846793005>;

Required behavior: The consecutive invocation of a default-constructed object of type mt19937_­64 shall produce the value 9981545732273789042.

using ranlux24_base = subtract_with_carry_engine<uint_fast32_t, 24, 10, 24>;

Required behavior: The consecutive invocation of a default-constructed object of type ranlux24_­base shall produce the value 7937952.

using ranlux48_base = subtract_with_carry_engine<uint_fast64_t, 48, 5, 12>;

Required behavior: The consecutive invocation of a default-constructed object of type ranlux48_­base shall produce the value 61839128582725.

using ranlux24 = discard_block_engine<ranlux24_base, 223, 23>;

Required behavior: The consecutive invocation of a default-constructed object of type ranlux24 shall produce the value 9901578.

using ranlux48 = discard_block_engine<ranlux48_base, 389, 11>;

Required behavior: The consecutive invocation of a default-constructed object of type ranlux48 shall produce the value 249142670248501.

using knuth_b = shuffle_order_engine<minstd_rand0,256>;

Required behavior: The consecutive invocation of a default-constructed object of type knuth_­b shall produce the value 1112339016.

using default_random_engine = implementation-defined;

Remarks: The choice of engine type named by this typedef is implementation-defined. [Note: The implementation may select this type on the basis of performance, size, quality, or any combination of such factors, so as to provide at least acceptable engine behavior for relatively casual, inexpert, and/or lightweight use. Because different implementations may select different underlying engine types, code that uses this typedef need not generate identical sequences across implementations. end note]