16 #if !defined(RANDOMLIB_RANDOMMIXER_HPP)
17 #define RANDOMLIB_RANDOMMIXER_HPP 1
70 static const unsigned version = 0x4d784d54UL + (mixer_t::width == 64);
79 static const mixer_type mask = mixer_t::mask;
89 static void SeedToState(
const std::vector<RandomSeed::seed_type>& seed,
90 mixer_type state[],
unsigned n)
throw();
96 static std::string
Name() {
97 return "MixerMT0<Random_u" +
98 std::string(mixer_t::width == 32 ?
"32" :
"64") +
">";
101 static const mixer_type a0 = 5489ULL;
102 static const mixer_type a1 = 19650218ULL;
103 static const mixer_type
104 b = mixer_t::width == 32 ? 1812433253ULL : 6364136223846793005ULL;
105 static const mixer_type
106 c = mixer_t::width == 32 ? 1664525ULL : 3935559000370003845ULL;
107 static const mixer_type
108 d = mixer_t::width == 32 ? 1566083941ULL : 2862933555777941757ULL;
156 static const unsigned version = 0x4d784d56UL + (mixer_t::width == 64);
165 static const mixer_type mask = mixer_t::mask;
175 static void SeedToState(
const std::vector<RandomSeed::seed_type>& seed,
176 mixer_type state[],
unsigned n)
throw();
183 return "MixerMT1<Random_u" +
184 std::string(mixer_t::width == 32 ?
"32" :
"64") +
">";
187 static const mixer_type a = 5489ULL;
188 static const mixer_type
189 b = mixer_t::width == 32 ? 1812433253ULL : 6364136223846793005ULL;
190 static const mixer_type
191 c = mixer_t::width == 32 ? 1664525ULL : 3935559000370003845ULL;
192 static const mixer_type
193 d = mixer_t::width == 32 ? 1566083941ULL : 2862933555777941757ULL;
223 static const unsigned version = 0x4d78534dUL;
232 static const mixer_type mask = mixer_t::mask;
242 static void SeedToState(
const std::vector<RandomSeed::seed_type>& seed,
243 mixer_type state[],
unsigned n)
throw();
249 static std::string
Name() {
return "MixerSFMT"; }
251 static const mixer_type a = 0x8b8b8b8bUL;
252 static const mixer_type b = 1664525UL;
253 static const mixer_type c = 1566083941UL;
258 #endif // RANDOMLIB_RANDOMMIXER_HPP
The modified MT19937 mixing functionality.
static std::string Name()
Class to hold bit-width and unsigned type.
The original MT19937 mixing functionality.
The SFMT mixing functionality.
static std::string Name()
static std::string Name()