![]() |
Home | Libraries | People | FAQ | More |
boost::random::lagged_fibonacci_01_engine
// In header: <boost/random/lagged_fibonacci.hpp> template<typename RealType, w, p, q> class lagged_fibonacci_01_engine { public: // types typedef ; // construct/copy/destruct (); (); template<typename SeedSeq> (); template<typename It> (, ); // public member functions (); (); template<typename SeedSeq> (); template<typename It> (, ); (); template<typename Iter> (, ); (); // public static functions (); (); // friend functions template<typename CharT, typename Traits> (, ); template<typename CharT, typename Traits> (, ); (, ); (, ); // public data members static has_fixed_range; static word_size; static long_lag; static short_lag; static default_seed; };
Instantiations of class template lagged_fibonacci_01 model a pseudo-random number generator . It uses a lagged Fibonacci algorithm with two lags p and q, evaluated in floating-point arithmetic: x(i) = x(i-p) + x(i-q) (mod 1) with p > q. See
"Uniform random number generators for supercomputers", Richard Brent, Proc. of Fifth Australian Supercomputer Conference, Melbourne, Dec. 1992, pp. 704-706.
![]() |
Note |
|---|---|
The quality of the generator crucially depends on the choice of the parameters. User code should employ one of the sensibly parameterized generators such as lagged_fibonacci607 instead. |
The generator requires considerable amounts of memory for the storage of its state array. For example, lagged_fibonacci607 requires about 4856 bytes and lagged_fibonacci44497 requires about 350 KBytes.
lagged_fibonacci_01_engine public member functions();
Calls seed(default_seed).
( value);
Constructs a minstd_rand0 generator with the constructor parameter value and calls seed with it. Distinct seeds in the range [1, 2147483647) will produce generators with different states. Other seeds will be equivalent to some seed within this range. See linear_congruential_engine for details.
template<typename SeedSeq> ( seq);
Seeds this using values produced by lagged_fibonacci_01_engineseq.generate.
template<typename It> ( first, last);
Seeds this using values from the iterator range [first, last). If there are not enough elements in the range, throws lagged_fibonacci_01_enginestd::invalid_argument.
();
Returns the next value of the generator.
template<typename Iter> ( first, last);
Fills a range with random values
( z);
Advances the state of the generator by z.
lagged_fibonacci_01_engine friend functionstemplate<typename CharT, typename Traits> ( os, f);
Writes the textual representation of the generator to a std::ostream.
template<typename CharT, typename Traits> ( is, f);
Reads the textual representation of the generator from a std::istream.
( x_, y_);
Returns true if the two generators will produce identical sequences of outputs.
( lhs, rhs);
Returns true if the two generators will produce different sequences of outputs.