Module: Essential Math Group: Statistics classes
Does not inherit
#include <rw/randmcg59.h> RWRandgenMCG59 gen;
Class RWRandGenMCG59 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<>. RWRandGenMCG59 is a 59-bit multiplicative congruential generator.
xn = axn-1(mod m)
un = xn/m
a = 1313, m = 259
Unlike class RWRandGenerator, each instance of RWRandGenMCG59 contains and maintains its own, independent state. This can make it easier to use in some situations. The "internal state" of an instance of RWRandGenMCG59 consists of only a seed.
RWRandGenMCG59();
Constructs a generator, abitrarily seeded by a call to the time() function.
RWRandGenMCG59(const RWRandGenMCG59Gen& 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.
RWRandGenMCG59(unsigned long seed);
Constructs a generator with a specified seed.
double operator()();
Returns a random double in [0,1].
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 RWRandGenMCG59Gen& rgen);
Outputs a summary of rgen's internal state on ostream s.
std::istream& rwmathexport operator>> (std::istream& s, RWRandGenMCG59Gen& 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.