PagedGeometry  1.2.0
MTRand Class Reference

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 (const MTRand &o)
 
uint32 randInt ()
 
uint32 randInt (const uint32 n)
 
double rand ()
 
double rand (const double n)
 
double randExc ()
 
double randExc (const double n)
 
double randDblExc ()
 
double randDblExc (const double n)
 
double operator() ()
 
double rand53 ()
 
double randNorm (const double mean=0.0, const double stddev=1.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)
 
MTRandoperator= (const MTRand &o)
 

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 magic (const uint32 u) 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
 

Friends

std::ostream & operator<< (std::ostream &os, const MTRand &mtrand)
 
std::istream & operator>> (std::istream &is, MTRand &mtrand)