SourcePro C++ 12.0 |
SourcePro® C++ API Reference Guide |
SourcePro C++ Documentation Home |
Generates random numbers uniformly distributed over the interval [0, 1]
.
More...
#include <rw/randmtwist.h>
Public Member Functions | |
RWRandGenMTwist () | |
RWRandGenMTwist (unsigned long seed) | |
RWRandGenMTwist (const RWRandGenMTwist &u) | |
double | operator() () |
unsigned long | seed () const |
void | restart () |
void | restart (unsigned long seed) |
void | operator= (const RWRandGenMTwist &u) |
bool | operator== (const RWRandGenMTwist &u) const |
bool | operator!= (const RWRandGenMTwist &u) const |
void | printOn (std::ostream &s) const |
void | scanFrom (std::istream &s) |
void | restoreFrom (RWFile &) |
void | restoreFrom (RWvistream &) |
void | saveOn (RWFile &) const |
void | saveOn (RWvostream &) const |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &s, const RWRandGenMTwist &gen) |
std::istream & | operator>> (std::istream &s, 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 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, January pp.3-30 1998. There are also numerous resources on the internet, including a website dedicated to the Mersenne Twister.
#include <rw/randmtwist.h> RWRandGenMTwist gen;
RWRandGenMTwist::RWRandGenMTwist | ( | ) |
Constructs a generator, abitrarily seeded by a call to the time() function.
RWRandGenMTwist::RWRandGenMTwist | ( | unsigned long | seed | ) |
Constructs a generator with a specified seed.
RWRandGenMTwist::RWRandGenMTwist | ( | const RWRandGenMTwist & | u | ) |
Constructs a copy of u. The copy's state will equal the state of u at the time the copy is created, but will not share the state of u.
bool RWRandGenMTwist::operator!= | ( | const RWRandGenMTwist & | u | ) | const |
Returns true
for two distinct instances of RWRandGenMTwist if their interal states differ. "(x != x)
" returns false
.
double RWRandGenMTwist::operator() | ( | ) |
Returns a random double in [0,1]
.
void RWRandGenMTwist::operator= | ( | const RWRandGenMTwist & | u | ) |
Sets an instance of RWRandGenMTwist equal to the state of instance u.
bool RWRandGenMTwist::operator== | ( | const RWRandGenMTwist & | u | ) | const |
Returns true
for two distinct instances of RWRandGenMTwist if they will return identical sequences of values.
void RWRandGenMTwist::printOn | ( | std::ostream & | s | ) | const |
Outputs a summary of self's internal state on ostream s.
void RWRandGenMTwist::restart | ( | unsigned long | seed | ) |
Restarts the generator with specified seed.
void RWRandGenMTwist::restart | ( | ) |
Restarts the generator, abitrarily seeding it by a call to the time() function.
void RWRandGenMTwist::restoreFrom | ( | RWvistream & | ) |
Restores internal state of self from a virtual stream.
void RWRandGenMTwist::saveOn | ( | RWvostream & | ) | const |
Stores internal state of self to a virtual stream.
void RWRandGenMTwist::saveOn | ( | RWFile & | ) | const |
Stores internal state of self in a binary format to an RWFile.
void RWRandGenMTwist::scanFrom | ( | std::istream & | s | ) |
Inputs an internal state from istream s to self.
unsigned long RWRandGenMTwist::seed | ( | ) | const |
Returns the seed used to initialize the generator.
std::ostream & operator<< | ( | std::ostream & | s, | |
const RWRandGenMTwist & | gen | |||
) | [related] |
Outputs a summary of gen's internal state on ostream s.
std::istream & operator>> | ( | std::istream & | s, | |
RWRandGenMTwist & | gen | |||
) | [related] |
Inputs an internal state from istream s to gen.
© 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.