OMNeT++ API 6.2.0
Discrete Event Simulation Library
cLCG32 Class Reference

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.

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)
 

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.


The documentation for this class was generated from the following file: