72 #ifndef SSTMAC_COMMON_MERSENNETWISTER_H_INCLUDED 73 #define SSTMAC_COMMON_MERSENNETWISTER_H_INCLUDED 113 std::vector<uint64_t>
mt_;
117 void reseed(uint64_t seed);
125 return "mersennetwister";
138 virtual void vec_reseed(
const std::vector<rngint_t> &seeds);
virtual ~mersenne_twister()
Cleanup.
std::vector< uint64_t > mt_
The array for the state vector. Of length 'state_vector_length_'.
static const int mask_length_
I believe this is a mask length, defaults to 156 ('MM' in original).
virtual std::string to_string() const
virtual int nseed()
The number of seeds employed by this generator.
static const int state_vector_length_
State vector length defaults to 312 entries ('NN' in original code).
virtual void vec_reseed(const std::vector< rngint_t > &seeds)
Reseed the generator. This is an expensive operation.
virtual rngint_t value()
Get a value in the interval [0,numeric_limits<rngint_t>::max()].
mersenne_twister(uint64_t seed)
Like normally for SST/macro types, constructor is private.
static mersenne_twister * construct(uint64_t seed)
Create a new twister.
size_t mti_
The current position in the state vector ('mti' in original code).
Updated Mersenne twister.