The TT800 random number generator. More...

#include "murl_util_rng.h"

Inheritance diagram for Murl::Util::TT800:

Public Member Functions

 TT800 ()
 The default constructor. More...
 
 TT800 (UInt32 seed)
 Constructor taking a seed value. More...
 
void Seed (UInt32 seed) override
 Seed the random number generator. More...
 
UInt32 Rand () override
 Get a random number in the full UInt32 range. More...
 
- Public Member Functions inherited from Murl::Util::Rng
virtual ~Rng ()=default
 The destructor.
 
Bool RandBool ()
 Get a random Bool value. More...
 
UInt32 RandUInt (UInt32 from, UInt32 to)
 Get a random UInt32 value within a specified range. More...
 
SInt32 RandSInt (SInt32 from, SInt32 to)
 Get a random SInt32 value within a specified range. More...
 
Real RandReal (Real from, Real to)
 Get a random Real value within a specified range. More...
 
Double RandDouble (Double from, Double to)
 Get a random Double value within a specified range. More...
 
SInt32 Draw (const UInt32Array &distribution)
 Draw an index from a distribution array. More...
 
SInt32 DrawNoReplacement (UInt32Array &distribution)
 Draw an index from a distribution array with no replacement. More...
 
SInt32 DrawNoReplacement (UInt32Array &distribution, UInt32 decrement)
 Draw an index from a distribution array with no replacement. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Murl::Util::Rng
 Rng ()=default
 The default constructor.
 

Detailed Description

The TT800 random number generator.

The TT800 generator has high quality with a period of 2^800. The TT800 is a light version of the Mersenne-Twister generator.

Constructor & Destructor Documentation

◆ TT800() [1/2]

Murl::Util::TT800::TT800 ( )

The default constructor.

Seed() the random number generator with the current time nanoseconds fraction.

◆ TT800() [2/2]

Murl::Util::TT800::TT800 ( UInt32  seed)

Constructor taking a seed value.

Parameters
seedThe seed value.

Member Function Documentation

◆ Seed()

void Murl::Util::TT800::Seed ( UInt32  seed)
overridevirtual

Seed the random number generator.

The seed is used for a temporary Marsaglia generator which is used for initializing the internal 800 bit state.

Parameters
seedThe seed value.

Implements Murl::Util::Rng.

◆ Rand()

UInt32 Murl::Util::TT800::Rand ( )
overridevirtual

Get a random number in the full UInt32 range.

Returns
The random number.

Implements Murl::Util::Rng.


The documentation for this class was generated from the following file:
  • murl_util_rng.h


Copyright © 2011-2024 Spraylight GmbH.