![]() |
Home | Libraries | People | FAQ | More |
boost::random::subtract_with_carry_engine
// In header: <boost/random/subtract_with_carry.hpp> template<typename IntType, w, s, r> class subtract_with_carry_engine { public: // types typedef IntType ; // construct/copy/destruct (); (IntType); template<typename SeedSeq> (SeedSeq &); template<typename It> (It &, It); // public member functions void (); void (IntType); template<typename SeedSeq> void (SeedSeq &); template<typename It> void (It &, It); (); void (boost::uintmax_t); template<typename It> void (It, It); // public static functions constexpr (); constexpr (); // friend functions template<typename CharT, typename Traits> CharT, Traits > & (CharT, Traits > &, const subtract_with_carry_engine &); template<typename CharT, typename Traits> CharT, Traits > & (CharT, Traits > &, const subtract_with_carry_engine &); bool (const subtract_with_carry_engine &, const subtract_with_carry_engine &); bool (const subtract_with_carry_engine &, const subtract_with_carry_engine &); // public data members static const word_size; static const long_lag; static const short_lag; static const uint32_t default_seed; static const bool has_fixed_range; static const modulus; };
Instantiations of subtract_with_carry_engine
model a pseudo-random number generator . The algorithm is described in
"A New Class of Random Number Generators", George Marsaglia and Arif Zaman, Annals of Applied Probability, Volume 1, Number 3 (1991), 462-480.
subtract_with_carry_engine
public
construct/copy/destruct();
Constructs a new
and seeds it with the default seed. subtract_with_carry_engine
(IntType value);
Constructs a new
and seeds it with subtract_with_carry_engine
value
.
template<typename SeedSeq> (SeedSeq & seq);
Constructs a new
and seeds it with values produced by subtract_with_carry_engine
seq.generate()
.
template<typename It> (It & first, It last);
Constructs a new
and seeds it with values from a range. first is updated to point one past the last value consumed. If there are not enough elements in the range to fill the entire state of the generator, throws subtract_with_carry_engine
std::invalid_argument
.
subtract_with_carry_engine
public member functionsvoid ();
Seeds the generator with the default seed.
void (IntType value);
template<typename SeedSeq> void (SeedSeq & seq);
Seeds the generator with values produced by seq.generate()
.
template<typename It> void (It & first, It last);
Seeds the generator with values from a range. Updates first
to point one past the last consumed value. If the range does not contain enough elements to fill the entire state of the generator, throws std::invalid_argument
.
();
Returns the next value of the generator.
void (boost::uintmax_t z);
Advances the state of the generator by z
.
template<typename It> void (It first, It last);
Fills a range with random values.
subtract_with_carry_engine
friend functionstemplate<typename CharT, typename Traits> CharT, Traits > & (CharT, Traits > & os, const subtract_with_carry_engine & f);
Writes a
to a subtract_with_carry_engine
std::ostream
.
template<typename CharT, typename Traits> CharT, Traits > & (CharT, Traits > & is, const subtract_with_carry_engine & f);
Reads a
from a subtract_with_carry_engine
std::istream
.
bool (const subtract_with_carry_engine & x, const subtract_with_carry_engine & y);
Returns true if the two generators will produce identical sequences of values.
bool (const subtract_with_carry_engine & lhs, const subtract_with_carry_engine & rhs);
Returns true if the two generators will produce different sequences of values.