class
<random>
std::mt19937_64
typedef mersenne_twister_engine<uint_fast64_t,
  64,312,156,31,0xb5026f5aa96619e9,
  29,0x5555555555555555,
  17,0x71d67fffeda60000,
  37,0xfff7eee000000000,
  43,6364136223846793005> mt19937_64;
Mersene Twister 19937 generator (64 bit)
A Mersenne Twister pseudo-random generator of 64-bit numbers with a state size of 19937 bits.
It is an instantiation of the mersenne_twister_engine with the following template parameters:
| parameter | name | value | 
|---|
| UIntType | result type | uint_fast64_t | 
| w | word size | 64 | 
| n | state size | 312 | 
| m | shift size | 156 | 
| r | mask bits | 31 | 
| a | XOR mask | 0xb5026f5aa96619e9 | 
| u | tempering u | 29 | 
| d | tempering d | 0x5555555555555555 | 
| s | tempering s | 17 | 
| b | tempering b | 0x71d67fffeda60000 | 
| t | tempering t | 37 | 
| c | tempering c | 0xfff7eee000000000 | 
| l | tempering l | 43 | 
| f | initialization multiplier | 6364136223846793005 | 
Member types
The following alias is a member type of mt19937_64:
| member type | definition | notes | 
|---|
| result_type | uint_fast64_t | The type of the numbers generated. | 
Member functions
As a mersenne_twister_engine type, it has the following member functions:
- (constructor)
- Construct mersenne twister engine (public member function)
- min
- Minimum value (public static member function)
- max
- Maximum value (public static member function)
- seed
- Seed engine (public member function)
- operator()
- Generate random number (public member function)
- discard
- Advance internal state (public member function)
Non-member functions
As a mersenne_twister_engine type, the following operator overloads may be applied to it:
- operator<<
- Insert into output stream (function template
)
- operator>>
- Extract from input stream (function template
)
- relational operators
- Relational operators (function template
)
Member constexpr constants
| member constant | definition | notes | 
|---|
| word_size | 64 | The number of bits of each word in the state sequence. | 
| state_size | 312 | The number of elements in the state sequence (degree of recurrence). | 
| shift_size | 156 | The shift size used on twists to transform the values. | 
| mask_bits | 31 | The number of bits that mark the separation point of words on each twist. | 
| xor_mask | 0xb5026f5aa96619e9 | The XOR mask applied as the linear function on each twist. | 
| tempering_u | 29 | The shift size of parameter u used in the tempering process of the generation algorithm. | 
| tempering_d | 0x5555555555555555 | The XOR mask used as parameter d in the tempering process of the generation algorithm. | 
| tempering_s | 17 | The shift size of parameter s used in the tempering process of the generation algorithm. | 
| tempering_b | 0x71d67fffeda60000 | The XOR mask used as parameter b in the tempering process of the generation algorithm. | 
| tempering_t | 37 | The shift size of parameter t used in the tempering process of the generation algorithm. | 
| tempering_c | 0xfff7eee000000000 | The XOR mask used as parameter c in the tempering process of the generation algorithm. | 
| tempering_l | 43 | The shift size of parameter l used in the tempering process of the generation algorithm. | 
| initialization_multiplier | 6364136223846793005 | The initialization multiplier used to seed the state sequence when a single value is used as seed. | 
| default_seed | 5489u | The default seed used on construction or seeding. |