libstdc++
|
#include <random>
Public Types | |
typedef _UIntType | result_type |
Public Member Functions | |
template<typename _Sseq , typename = _If_seed_seq<_Sseq>> | |
mersenne_twister_engine (_Sseq &__q) | |
mersenne_twister_engine (result_type __sd) | |
void | discard (unsigned long long __z) |
result_type | operator() () |
template<typename _Sseq > | |
_If_seed_seq< _Sseq > | seed (_Sseq &__q) |
template<typename _Sseq > | |
auto | seed (_Sseq &__q) -> _If_seed_seq< _Sseq > |
void | seed (result_type __sd=default_seed) |
Static Public Member Functions | |
static constexpr result_type | max () |
static constexpr result_type | min () |
Static Public Attributes | |
static constexpr result_type | default_seed |
static constexpr result_type | initialization_multiplier |
static constexpr size_t | mask_bits |
static constexpr size_t | shift_size |
static constexpr size_t | state_size |
static constexpr result_type | tempering_b |
static constexpr result_type | tempering_c |
static constexpr result_type | tempering_d |
static constexpr size_t | tempering_l |
static constexpr size_t | tempering_s |
static constexpr size_t | tempering_t |
static constexpr size_t | tempering_u |
static constexpr size_t | word_size |
static constexpr result_type | xor_mask |
Friends | |
template<typename _UIntType1 , size_t __w1, size_t __n1, size_t __m1, size_t __r1, _UIntType1 __a1, size_t __u1, _UIntType1 __d1, size_t __s1, _UIntType1 __b1, size_t __t1, _UIntType1 __c1, size_t __l1, _UIntType1 __f1, typename _CharT , typename _Traits > | |
std::basic_ostream< _CharT, _Traits > & | operator<< (std::basic_ostream< _CharT, _Traits > &__os, const std::mersenne_twister_engine< _UIntType1, __w1, __n1, __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1 > &__x) |
bool | operator== (const mersenne_twister_engine &__lhs, const mersenne_twister_engine &__rhs) |
template<typename _UIntType1 , size_t __w1, size_t __n1, size_t __m1, size_t __r1, _UIntType1 __a1, size_t __u1, _UIntType1 __d1, size_t __s1, _UIntType1 __b1, size_t __t1, _UIntType1 __c1, size_t __l1, _UIntType1 __f1, typename _CharT , typename _Traits > | |
std::basic_istream< _CharT, _Traits > & | operator>> (std::basic_istream< _CharT, _Traits > &__is, std::mersenne_twister_engine< _UIntType1, __w1, __n1, __m1, __r1, __a1, __u1, __d1, __s1, __b1, __t1, __c1, __l1, __f1 > &__x) |
A generalized feedback shift register discrete random number generator.
This algorithm avoids multiplication and division and is designed to be friendly to a pipelined architecture. If the parameters are chosen correctly, this generator will produce numbers with a very long period and fairly good apparent entropy, although still not cryptographically strong.
The best way to use this generator is with the predefined mt19937 class.
This algorithm was originally invented by Makoto Matsumoto and Takuji Nishimura.
__w | Word size, the number of bits in each element of the state vector. |
__n | The degree of recursion. |
__m | The period parameter. |
__r | The separation point bit index. |
__a | The last row of the twist matrix. |
__u | The first right-shift tempering matrix parameter. |
__d | The first right-shift tempering matrix mask. |
__s | The first left-shift tempering matrix parameter. |
__b | The first left-shift tempering matrix mask. |
__t | The second left-shift tempering matrix parameter. |
__c | The second left-shift tempering matrix mask. |
__l | The second right-shift tempering matrix parameter. |
__f | Initialization multiplier. |
typedef _UIntType std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::result_type |
|
inline |
|
inlineexplicit |
|
inlineexplicit |
void std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::discard | ( | unsigned long long | __z | ) |
Discard a sequence of random numbers.
Definition at line 434 of file bits/random.tcc.
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::result_type std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::operator() | ( | ) |
Definition at line 454 of file bits/random.tcc.
auto std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::seed | ( | _Sseq & | __q | ) | -> _If_seed_seq<_Sseq> |
Definition at line 353 of file bits/random.tcc.
void std::mersenne_twister_engine< _UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f >::seed | ( | result_type | __sd = default_seed | ) |
Definition at line 327 of file bits/random.tcc.
|
friend |
Inserts the current state of a % mersenne_twister_engine random number generator engine __x
into the output stream __os
.
__os | An output stream. |
__x | A % mersenne_twister_engine random number generator engine. |
__x
inserted or in an error state.
|
friend |
Compares two % mersenne_twister_engine random number generator objects of the same type for equality.
__lhs | A % mersenne_twister_engine random number generator object. |
__rhs | Another % mersenne_twister_engine random number generator object. |
|
friend |
Extracts the current state of a % mersenne_twister_engine random number generator engine __x
from the input stream __is
.
__is | An input stream. |
__x | A % mersenne_twister_engine random number generator engine. |
__x
extracted or in an error state.
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |