#include <MersenneTwister.h>
Public Types | |
enum | { N = 624 } |
enum | { SAVE = N + 1 } |
typedef unsigned long | uint32 |
Public Member Functions | |
MTRand (const uint32 &oneSeed) | |
MTRand (uint32 *const bigSeed, uint32 const seedLength=N) | |
MTRand () | |
double | rand () |
double | rand (const double &n) |
double | randExc () |
double | randExc (const double &n) |
double | randDblExc () |
double | randDblExc (const double &n) |
uint32 | randInt () |
uint32 | randInt (const uint32 &n) |
double | operator() () |
double | rand53 () |
double | randNorm (const double &mean=0.0, const double &variance=0.0) |
void | seed (const uint32 oneSeed) |
void | seed (uint32 *const bigSeed, const uint32 seedLength=N) |
void | seed () |
void | save (uint32 *saveArray) const |
void | load (uint32 *const loadArray) |
Protected Types | |
enum | { M = 397 } |
Protected Member Functions | |
void | initialize (const uint32 oneSeed) |
void | reload () |
uint32 | hiBit (const uint32 &u) const |
uint32 | loBit (const uint32 &u) const |
uint32 | loBits (const uint32 &u) const |
uint32 | mixBits (const uint32 &u, const uint32 &v) const |
uint32 | twist (const uint32 &m, const uint32 &s0, const uint32 &s1) const |
Static Protected Member Functions | |
static uint32 | hash (time_t t, clock_t c) |
Protected Attributes | |
uint32 | state [N] |
uint32 * | pNext |
int | left |
typedef unsigned long MTRand::uint32 |
MTRand::MTRand | ( | const uint32 & | oneSeed | ) | [inline] |
MTRand::MTRand | ( | ) | [inline] |
double MTRand::rand | ( | ) | [inline] |
double MTRand::rand | ( | const double & | n | ) | [inline] |
double MTRand::randExc | ( | ) | [inline] |
double MTRand::randExc | ( | const double & | n | ) | [inline] |
double MTRand::randDblExc | ( | ) | [inline] |
double MTRand::randDblExc | ( | const double & | n | ) | [inline] |
MTRand::uint32 MTRand::randInt | ( | ) | [inline] |
MTRand::uint32 MTRand::randInt | ( | const uint32 & | n | ) | [inline] |
double MTRand::operator() | ( | ) | [inline] |
double MTRand::rand53 | ( | ) | [inline] |
double MTRand::randNorm | ( | const double & | mean = 0.0 , |
|
const double & | variance = 0.0 | |||
) | [inline] |
void MTRand::seed | ( | const uint32 | oneSeed | ) | [inline] |
void MTRand::seed | ( | ) | [inline] |
void MTRand::save | ( | uint32 * | saveArray | ) | const [inline] |
void MTRand::load | ( | uint32 *const | loadArray | ) | [inline] |
void MTRand::initialize | ( | const uint32 | oneSeed | ) | [inline, protected] |
void MTRand::reload | ( | ) | [inline, protected] |
uint32 MTRand::twist | ( | const uint32 & | m, | |
const uint32 & | s0, | |||
const uint32 & | s1 | |||
) | const [inline, protected] |
MTRand::uint32 MTRand::hash | ( | time_t | t, | |
clock_t | c | |||
) | [inline, static, protected] |
uint32 MTRand::state[N] [protected] |
uint32* MTRand::pNext [protected] |
int MTRand::left [protected] |