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.