MTwistEngine


A "fast, compact, huge-period generator" based on M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator", to appear in ACM Trans. on Modeling and Computer Simulation. It is a twisted GFSR generator with a Mersenne-prime period of 2^19937-1, uniform on open interval (0,1) For further information, see http://www.math.keio.ac.jp/~matumoto/emt.html

Author

Ken Smith

See also

Engines: HepRandomEngine, DRand48Engine , DualRand, HepJamesRandom, Hurd160Engine, Hurd288Engine, RandEngine, RanecuEngine, RanluxEngine, Ranlux64Engine, RanshiEngine, TripleRand

Distributions: HepRandom, RandBinomial, RandBit, RandBreitWigner, RandChiSquare, RandExponential, RandFlat, RandGamma, RandGauss, RandGaussQ, RandGaussT, RandGeneral, RandLandau, RandPoisson, RandPoissonQ, RandPoissonT, RandStudentT

Functions: HepStat

Declaration

#include "CLHEP/Random/MTwistEngine.h"

class MTwistEngine: public HepRandomEngine

Public Member Functions

Constructors
MTwistEngine()
MTwistEngine(long seed)
MTwistEngine(HepInt rowIndex, HepInt colIndex)
MTwistEngine(HepStd::istream& is)
Copy constructor
MTwistEngine(const MTwistEngine & p)
Destructor
virtual ~MTwistEngine()
Conversion operators
operator HepFloat()
Flat value, without worrying about filling bits

operator unsigned int()
32-bit flat value, quickest of all
=
MTwistEngine & operator=(const MTwistEngine & p)
Assignment
flat
HepDouble flat()
Returns a pseudo random number between 0 and 1 (excluding the end points).
flatArray
void flatArray(const HepInt size, HepDouble* vect)
Fills an array vect of specified size with flat random values.
restoreStatus
void restoreStatus(const char filename[] = "MTwist.conf")
Reads from named file the last saved engine status and restores it.
saveStatus
void saveStatus(const char filename[] = "MTwist.conf") const
Saves on named file the current engine status.
setSeed
void setSeed(long seed, HepInt)
Sets the state of the algorithm according to seed.
setSeeds
void setSeeds(const long * seeds, HepInt)
Sets the state of the algorithm according to the zero-terminated array of seeds.
showStatus
void showStatus() const
Dumps the current engine status on the screen.

Non-Member Functions

<<
HepStd::ostream & operator<< (HepStd::ostream & os, const MTwistEngine & e)
Output to a stream.
>>
HepStd::istream & operator>> (HepStd::istream & is, MTwistEngine & e)
Input from a stream.

Example

CLHEP/test/testRandom.cc


15 May 2000
EVC