#include <random.h>

List of all members.

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)
double randNorm (const double &mean, const double &variance, const double &min, const double &max)
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]
uint32pNext
int left

Friends

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

Member Typedef Documentation

typedef unsigned long MTRand::uint32

Member Enumeration Documentation

anonymous enum
Enumerator:
N 
anonymous enum
Enumerator:
SAVE 
anonymous enum [protected]
Enumerator:
M 

Constructor & Destructor Documentation

MTRand::MTRand ( const uint32 oneSeed  )  [inline]

References seed().

Here is the call graph for this function:

MTRand::MTRand ( uint32 *const   bigSeed,
uint32 const  seedLength = N 
) [inline]

References seed().

Here is the call graph for this function:

MTRand::MTRand (  )  [inline]

References seed().

Here is the call graph for this function:


Member Function Documentation

MTRand::uint32 MTRand::hash ( time_t  t,
clock_t  c 
) [inline, static, protected]

Referenced by seed().

uint32 MTRand::hiBit ( const uint32 u  )  const [inline, protected]

Referenced by mixBits().

void MTRand::initialize ( const uint32  oneSeed  )  [inline, protected]

References state.

Referenced by seed().

void MTRand::load ( uint32 *const   loadArray  )  [inline]

References left, N, pNext, and state.

uint32 MTRand::loBit ( const uint32 u  )  const [inline, protected]

Referenced by twist().

uint32 MTRand::loBits ( const uint32 u  )  const [inline, protected]

Referenced by mixBits().

uint32 MTRand::mixBits ( const uint32 u,
const uint32 v 
) const [inline, protected]

References hiBit(), and loBits().

Referenced by twist().

Here is the call graph for this function:

double MTRand::operator() (  )  [inline]

References rand().

Here is the call graph for this function:

double MTRand::rand ( const double &  n  )  [inline]

References rand().

Here is the call graph for this function:

double MTRand::rand53 (  )  [inline]

References a, and randInt().

Here is the call graph for this function:

double MTRand::randDblExc (  )  [inline]

References randInt().

Referenced by randDblExc(), and randNorm().

Here is the call graph for this function:

double MTRand::randDblExc ( const double &  n  )  [inline]

References randDblExc().

Here is the call graph for this function:

double MTRand::randExc ( const double &  n  )  [inline]

References randExc().

Here is the call graph for this function:

double MTRand::randExc (  )  [inline]

References randInt().

Referenced by randExc(), and randNorm().

Here is the call graph for this function:

MTRand::uint32 MTRand::randInt ( const uint32 n  )  [inline]

References randInt().

Here is the call graph for this function:

double MTRand::randNorm ( const double &  mean,
const double &  variance,
const double &  min,
const double &  max 
) [inline]

References randNorm().

Here is the call graph for this function:

void MTRand::reload (  )  [inline, protected]

References left, M, N, pNext, state, and twist().

Referenced by randInt(), and seed().

Here is the call graph for this function:

void MTRand::save ( uint32 saveArray  )  const [inline]

References left, and state.

void MTRand::seed ( uint32 *const   bigSeed,
const uint32  seedLength = N 
) [inline]

References initialize(), N, reload(), and state.

Here is the call graph for this function:

void MTRand::seed ( const uint32  oneSeed  )  [inline]

References initialize(), and reload().

Here is the call graph for this function:

void MTRand::seed (  )  [inline]

References hash(), and N.

Referenced by MTRand().

Here is the call graph for this function:

uint32 MTRand::twist ( const uint32 m,
const uint32 s0,
const uint32 s1 
) const [inline, protected]

References loBit(), and mixBits().

Referenced by reload().

Here is the call graph for this function:


Friends And Related Function Documentation

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

Member Data Documentation

int MTRand::left [protected]
uint32* MTRand::pNext [protected]

Referenced by load(), operator>>(), randInt(), and reload().


The documentation for this class was generated from the following file: