cLCG32 Class Reference

API: cLCG32 Class Reference
API
cLCG32 Class Reference
Inheritance diagram for cLCG32:
[legend]

Public Member Functions

virtual std::string str () const override
virtual void initialize (int seedSet, int rngId, int numRngs, int parsimProcId, int parsimNumPartitions, cConfiguration *cfg) override
virtual void selfTest () override
virtual uint32_t intRand () override
virtual uint32_t intRandMax () override
virtual uint32_t intRand (uint32_t n) override
virtual double doubleRand () override
virtual double doubleRandNonz () override
virtual double doubleRandIncl1 () override
Public Member Functions inherited from cRNG
virtual uint64_t getNumbersDrawn () const
double doubleRandNonzIncl1 ()
Public Member Functions inherited from cObject
 cObject ()
 cObject (const cObject &other)=default
virtual ~cObject ()
virtual const char * getClassName () const
virtual const char * getName () const
bool isName (const char *s) const
virtual const char * getFullName () const
virtual std::string getFullPath () const
virtual std::string getClassAndFullName () const
virtual std::string getClassAndFullPath () const
const cObjectgetThisPtr () const
virtual std::ostream & printOn (std::ostream &os) const
virtual cObjectdup () const
virtual void parsimPack (cCommBuffer *buffer) const
virtual void parsimUnpack (cCommBuffer *buffer)
virtual cObjectgetOwner () const
virtual bool isOwnedObject () const
virtual bool isSoftOwner () const
virtual void forEachChild (cVisitor *v)
cObjectfindObject (const char *name, bool deep=true)
virtual cClassDescriptorgetDescriptor () const
void copyNotSupported () const

Additional Inherited Members

Protected Member Functions inherited from cObject
virtual void take (cOwnedObject *obj)
virtual void drop (cOwnedObject *obj)
void dropAndDelete (cOwnedObject *obj)

Description

Implements a 32-bit (2^31-2 cycle length) linear congruential random number generator.

  • Range: 1 ... 2^31-2
  • Period length: 2^31-2
  • Method: x=(x * 7^5) mod (2^31-1)
  • Required hardware: exactly 32-bit integer arithmetics
  • To check: if x[0]=1 then x[10000]=1,043,618,065

Source: Raj Jain: The Art of Computer Systems Performance Analysis (John Wiley & Sons, 1991) pp 441-444, 455.

Member Function Documentation

◆ str()

virtual std::string str ( ) const
overridevirtual

Returns a brief, one-line description of the object. The returned string does (should) NOT include the object's name and class. This method is used to display object information at several places in the Qtenv GUI, among others.

Reimplemented from cObject.

◆ initialize()

virtual void initialize ( int seedSet,
int rngId,
int numRngs,
int parsimProcId,
int parsimNumPartitions,
cConfiguration * cfg )
overridevirtual

Sets up the RNG.

Implements cRNG.

◆ selfTest()

virtual void selfTest ( )
overridevirtual

Tests correctness of the RNG

Implements cRNG.

◆ intRand() [1/2]

virtual uint32_t intRand ( )
overridevirtual

Random integer in the range [0,intRandMax()]

Implements cRNG.

◆ intRandMax()

virtual uint32_t intRandMax ( )
overridevirtual

Maximum value that can be returned by intRand()

Implements cRNG.

◆ intRand() [2/2]

virtual uint32_t intRand ( uint32_t n)
overridevirtual

Random integer in [0,n), n < intRandMax()

Implements cRNG.

◆ doubleRand()

virtual double doubleRand ( )
overridevirtual

Random double on the [0,1) interval

Implements cRNG.

◆ doubleRandNonz()

virtual double doubleRandNonz ( )
overridevirtual

Random double on the (0,1) interval

Implements cRNG.

◆ doubleRandIncl1()

virtual double doubleRandIncl1 ( )
overridevirtual

Random double on the [0,1] interval

Implements cRNG.