|
libstdc++
|
Public Types | |
| typedef _UIntType | result_type |
Public Member Functions | |
| subtract_with_carry_engine (result_type __sd=default_seed) | |
| template<typename _Sseq , typename = typename std::enable_if<!std::is_same<_Sseq, subtract_with_carry_engine>::value> ::type> | |
| subtract_with_carry_engine (_Sseq &__q) | |
| void | discard (unsigned long long __z) |
| result_type | operator() () |
| void | seed (result_type __sd=default_seed) |
| template<typename _Sseq > | |
| std::enable_if< std::is_class < _Sseq >::value >::type | seed (_Sseq &__q) |
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 size_t | long_lag |
| static constexpr size_t | short_lag |
| static constexpr size_t | word_size |
Friends | |
| template<typename _UIntType1 , size_t __w1, size_t __s1, size_t __r1, typename _CharT , typename _Traits > | |
| std::basic_ostream< _CharT, _Traits > & | operator<< (std::basic_ostream< _CharT, _Traits > &__os, const std::subtract_with_carry_engine< _UIntType1, __w1, __s1, __r1 > &__x) |
| bool | operator== (const subtract_with_carry_engine &__lhs, const subtract_with_carry_engine &__rhs) |
| template<typename _UIntType1 , size_t __w1, size_t __s1, size_t __r1, typename _CharT , typename _Traits > | |
| std::basic_istream< _CharT, _Traits > & | operator>> (std::basic_istream< _CharT, _Traits > &__is, std::subtract_with_carry_engine< _UIntType1, __w1, __s1, __r1 > &__x) |
The Marsaglia-Zaman generator.
This is a model of a Generalized Fibonacci discrete random number generator, sometimes referred to as the SWC generator.
A discrete random number generator that produces pseudorandom numbers using:
The size of the state is
and the maximum period of the generator is
.
| typedef _UIntType std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::result_type |
| std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::subtract_with_carry_engine | ( | result_type | __sd = default_seed | ) | [inline, explicit] |
Constructs an explicitly seeded % subtract_with_carry_engine random number generator.
Definition at line 683 of file random.h.
References std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::seed().
| std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::subtract_with_carry_engine | ( | _Sseq & | __q | ) | [inline, explicit] |
Constructs a subtract_with_carry_engine random number engine seeded from the seed sequence __q.
| __q | the seed sequence. |
Definition at line 696 of file random.h.
References std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::seed().
| void std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::discard | ( | unsigned long long | __z | ) | [inline] |
| static constexpr result_type std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::max | ( | ) | [inline, static] |
| static constexpr result_type std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::min | ( | ) | [inline, static] |
| subtract_with_carry_engine< _UIntType, __w, __s, __r >::result_type std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::operator() | ( | ) |
Gets the next random number in the sequence.
Definition at line 598 of file bits/random.tcc.
| void std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::seed | ( | result_type | __sd = default_seed | ) |
Seeds the initial state
of the random number generator.
N1688[4.19] modifies this as follows. If __value == 0, sets value to 19780503. In any case, with a linear congruential generator lcg(i) having parameters
, sets
to
respectively. If
set carry to 1, otherwise sets carry to 0.
Definition at line 543 of file bits/random.tcc.
Referenced by std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::subtract_with_carry_engine().
| std::enable_if< std::is_class< _Sseq >::value >::type std::subtract_with_carry_engine< _UIntType, __w, __s, __r >::seed | ( | _Sseq & | __q | ) |
Seeds the initial state
of the % subtract_with_carry_engine random number generator.
Definition at line 572 of file bits/random.tcc.
| std::basic_ostream<_CharT, _Traits>& operator<< | ( | std::basic_ostream< _CharT, _Traits > & | __os, |
| const std::subtract_with_carry_engine< _UIntType1, __w1, __s1, __r1 > & | __x | ||
| ) | [friend] |
Inserts the current state of a % subtract_with_carry_engine random number generator engine __x into the output stream __os.
| __os | An output stream. |
| __x | A % subtract_with_carry_engine random number generator engine. |
__x inserted or in an error state. | bool operator== | ( | const subtract_with_carry_engine< _UIntType, __w, __s, __r > & | __lhs, |
| const subtract_with_carry_engine< _UIntType, __w, __s, __r > & | __rhs | ||
| ) | [friend] |
Compares two % subtract_with_carry_engine random number generator objects of the same type for equality.
| __lhs | A % subtract_with_carry_engine random number generator object. |
| __rhs | Another % subtract_with_carry_engine random number generator object. |
| std::basic_istream<_CharT, _Traits>& operator>> | ( | std::basic_istream< _CharT, _Traits > & | __is, |
| std::subtract_with_carry_engine< _UIntType1, __w1, __s1, __r1 > & | __x | ||
| ) | [friend] |
Extracts the current state of a % subtract_with_carry_engine random number generator engine __x from the input stream __is.
| __is | An input stream. |
| __x | A % subtract_with_carry_engine random number generator engine. |
__x extracted or in an error state.