10 #ifndef LINTEL_MERSENNE_TWISTER_RANDOM_HPP 11 #define LINTEL_MERSENNE_TWISTER_RANDOM_HPP 36 void init(uint32_t seed);
40 void initArray(std::vector<uint32_t> seed_array);
65 static const int N = 624;
66 static const int M = 397;
106 template<
class RandomAccessIter>
112 for (RandomAccessIter i = first + 1; i != last; ++i) {
113 int rval = rng.randInt((i - first) + 1);
114 iter_swap(i, first + rval);
118 #endif // LINTEL_MERSENNE_TWISTER_RANDOM_HPP RandomTempl< MersenneTwisterInternal > MersenneTwisterRandom
Definition: MersenneTwisterRandom.hpp:90
MersenneTwisterInternal(uint32_t seed=0)
Definition: mersenne.cpp:79
void init(uint32_t seed)
Definition: mersenne.cpp:104
Mersenne Twister random number generation class.
Definition: MersenneTwisterRandom.hpp:29
uint32_t randInt()
Definition: MersenneTwisterRandom.hpp:42
static const uint32_t TEMPERING_MASK_C
Definition: MersenneTwisterRandom.hpp:73
Definition: MersenneTwisterRandom.hpp:18
static const int TEMPERING_SHIFT_T
Definition: MersenneTwisterRandom.hpp:79
static const int M
Definition: MersenneTwisterRandom.hpp:66
static const uint32_t MATRIX_A
Definition: MersenneTwisterRandom.hpp:68
int mti
Definition: MersenneTwisterRandom.hpp:87
void MT_random_shuffle(RandomAccessIter first, RandomAccessIter last, MersenneTwisterRandom &rng=MTRandom)
Definition: MersenneTwisterRandom.hpp:108
static const int TEMPERING_SHIFT_U
Definition: MersenneTwisterRandom.hpp:75
uint32_t mt[N]
Definition: MersenneTwisterRandom.hpp:85
static const int TEMPERING_SHIFT_S
Definition: MersenneTwisterRandom.hpp:77
static const int TEMPERING_SHIFT_L
Definition: MersenneTwisterRandom.hpp:81
uint32_t seedUsed()
Definition: MersenneTwisterRandom.hpp:58
void reloadArray()
Definition: mersenne.cpp:199
MersenneTwisterRandom MTRandom
Definition: mersenne.cpp:77
Definition: RandomBase.hpp:14
uint32_t seed_used
Definition: MersenneTwisterRandom.hpp:56
void initArray(std::vector< uint32_t > seed_array)
Definition: mersenne.cpp:141
static const uint32_t TEMPERING_MASK_B
Definition: MersenneTwisterRandom.hpp:71
static const uint32_t LOWER_MASK
Definition: MersenneTwisterRandom.hpp:70
static const uint32_t UPPER_MASK
Definition: MersenneTwisterRandom.hpp:69
static const int N
Definition: MersenneTwisterRandom.hpp:65