Module: Essential Math Group: Statistics classes
Does not inherit
long seed() operator!=() operator() |
operator=() operator==() printOn() |
restart() restoreFrom() RWRandGenMTwist() |
saveOn() scanFrom() |
#include <rw/randmtwist.h> RWRandGenMTwist gen;
Class RWRandGenMTwist generates random numbers uniformly distributed over the interval [0, 1], and may be used instead of class RWRandGenerator as a template parameter to any of the distribution generators derived from abstract base class RWTRand<>. RWRandGenMTwist uses Takuji Nishimura and Makoto Matsumoto's Mersenne Twister algorithm. It is relatively fast, and has a large period (2^19937-1).
Unlike class RWRandGenerator, each instance of RWRandGenMTwist contains and maintains its own, independent state. This can make it easier to use in some situations. The "internal state" of an instance of RWRandGenMTwist consists of a table of an unsigned long seed, an array of unsigned longs known as the "state vector" and an integer index into that state vector.
Additional information about the Mersenne Twister Algorithm is available in the following sources:
The original Arcticle
M. Matsumoto and T. Nishimura,
"Mersenne Twister: A 623-dimensionally equidistributed uniform
pseudorandom number generator",
ACM Trans. on Modeling and Computer Simulation
Vol. 8, No. 1, Januray pp.3-30 1998
The Mersenne Twister Website
http://www.math.keio.ac.jp/~matumoto/emt.html
RWRandGenMTwist();
Constructs a generator, abitrarily seeded by a call to the time() function.
RWRandGenMTwist(const RWRandGenMTwist& x);
Constructs a copy of x. The copy's state will equal x's state at the time the copy is created, but will not share x's state.
RWRandGenMTwist(unsigned long seed);
Constructs a generator with a specified seed.
unsigned long seed() const;
Returns the seed used to initialize the generator.
void restart();
Restarts the generator, abitrarily seeding it by a call to the time function.
void restart(unsigned long seed);
Restarts the generator with specified seed.
double operator()();
Returns a random double in [0,1].
void operator=(const RWRandGenMTwist& x);
Sets an instance of RWRandGenMTwist equal to the state of instance x.
bool operator==(const RWRandGenMTwist& x) const;
Returns true for two distinct instances of RWRandGenMTwist if they will return identical sequences of values.
bool operator!=(const RWRandGenMTwist& x) const;
Returns true for two distinct instances of RWRandGenMTwist if their interal states differ. "(x != x)" returns false.
void printOn(std::ostream& s) const;
Outputs a summary of self's internal state on ostream s.
void scanFrom(std::istream& s);
Inputs an internal state from istream s to self.
void restoreFrom(RWvistream&); void restoreFrom(RWFile&);
Restores internal state of self from a virtual stream or an RWFile.
void saveOn(RWvostream&) const; void saveOn(RWFile&) const;
Stores internal state of self to a virtual stream or in a binary format to an RWFile or RWvostream.
std::ostream& rwmathexport operator<< (std::ostream& s, const RWRandGenMTwist& rgen);
Outputs a summary of rgen's internal state on ostream s.
std::istream& rwmathexport operator>> (std::istream& s, RWRandGenMTwist& rgen);
Inputs an internal state from istream s to rgen.
© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.