Base Framework
Public Member Functions | List of all members
MarsagliaRandomNumberGenerator Class Reference

Marsaglia random number generator. More...

#include <base/math/MarsagliaRandomNumberGenerator.h>

Public Member Functions

 MarsagliaRandomNumberGenerator () noexcept
 
 MarsagliaRandomNumberGenerator (uint32 seed) noexcept
 
void randomize () noexcept
 
void randomize (uint32 seed) noexcept
 
uint32 getInteger () noexcept
 
double getDouble () noexcept
 
long double getLongDouble () noexcept
 

Detailed Description

Marsaglia random number generator.

Implementation of the pseudorandom number generator by George Marsaglia: The mother of all random number generators. The RNG has a period of about 2^250.

Version
1.0

Constructor & Destructor Documentation

◆ MarsagliaRandomNumberGenerator() [1/2]

MarsagliaRandomNumberGenerator::MarsagliaRandomNumberGenerator ( )
noexcept

Initializes the internal state of the generator from the current time.

◆ MarsagliaRandomNumberGenerator() [2/2]

MarsagliaRandomNumberGenerator::MarsagliaRandomNumberGenerator ( uint32  seed)
noexcept

Initializes the internal state of the generator.

Parameters
seedThe desired seed.

Member Function Documentation

◆ getDouble()

double MarsagliaRandomNumberGenerator::getDouble ( )
inlinenoexcept

Returns a random real number in the range [0;1].

◆ getInteger()

uint32 MarsagliaRandomNumberGenerator::getInteger ( )
noexcept

Returns a random integer (unsigned) utilizing the full range of the type.

◆ getLongDouble()

long double MarsagliaRandomNumberGenerator::getLongDouble ( )
inlinenoexcept

Returns a random real number in the range [0;1].

◆ randomize() [1/2]

void MarsagliaRandomNumberGenerator::randomize ( )
noexcept

Initializes the internal state of the generator from the current time.

◆ randomize() [2/2]

void MarsagliaRandomNumberGenerator::randomize ( uint32  seed)
noexcept

Initializes the internal state of the generator.

Parameters
seedThe desired seed.