![]() |
Home | Libraries | People | FAQ | More |
boost::random::mixmax_engine
// In header: <boost/random/mixmax.hpp> template< Ndim, SPECIALMUL, SPECIAL> class mixmax_engine { public: // types typedef ; // member classes/structs/unions struct rng_state_st { // public data members V; sumtot; counter; }; // construct/copy/destruct (); (); (, , , ); template<typename It> (, ); template<typename SeedSeq> (); // public member functions (); (); ( = ); template<typename It> (, ); template<typename SeeqSeq> (); (); template<typename Iter> (, ); (); // friend functions template<typename CharT, typename Traits> (, mixmax_engine &); template<typename CharT, typename Traits> (, mixmax_engine &); // private member functions (); (); (, ); (, , , , ); (, ); (, , , , , ); (, ); (, , ); // public data members static mixmax_min; static mixmax_max; static has_fixed_range; static N; // The main internal parameter, size of the defining MIXMAX matrix. };
Instantiations of class template mixmax_engine model, pseudo-random number generator . It uses the MIXMAX generator algorithms from:
G.K.Savvidy and N.G.Ter-Arutyunian, On the Monte Carlo simulation of physical systems, J.Comput.Phys. 97, 566 (1991); Preprint EPI-865-16-86, Yerevan, Jan. 1986 http://dx.doi.org/10.1016/0021-9991(91)90015-D
K.Savvidy The MIXMAX random number generator Comp. Phys. Commun. 196 (2015), pp 161–165 http://dx.doi.org/10.1016/j.cpc.2015.06.003
K.Savvidy and G.Savvidy Spectrum and Entropy of C-systems. MIXMAX random number generator Chaos, Solitons & Fractals, Volume 91, (2016) pp. 33–38 http://dx.doi.org/10.1016/j.chaos.2016.05.003
The generator crucially depends on the choice of the parameters. The valid sets of parameters are from the published papers above.
mixmax_engine
public
construct/copy/destruct();Constructor, unit vector as initial state, acted on by A^2^512.
();Constructor, one 64-bit seed.
< constructor, one uint64_t seed, random numbers are statistically independent from any two distinct seeds, e.g. consecutive seeds are ok
( clusterID, machineID, runID, streamID);Constructor, four 32-bit seeds for 128-bit seeding flexibility.
template<typename It> ( first, last);
template<typename SeedSeq> ( seq);
mixmax_engine
public member functions();
();
( seedval = );seed with one 64-bit seed
template<typename It> ( first, last);
Sets the state of the generator using values from an iterator range.
template<typename SeeqSeq> ( seq);
Sets the state of the generator using values from a seed_seq
.
();
return one uint64 between min=0 and max=2^61-1
template<typename Iter> ( first, last);
Fills a range with random values
( nsteps);discard n steps, required in boost::random
mixmax_engine
friend functionstemplate<typename CharT, typename Traits> ( ost, mixmax_engine & me);
save the state of the RNG to a stream
template<typename CharT, typename Traits> ( in, mixmax_engine & me);
read the state of the RNG from a stream