casacore
|
Multiplicative linear congruential generator. More...
#include <Random.h>
Public Member Functions | |
MLCG (Int seed1=0, Int seed2=1) | |
The constructor allows you to specify seeds. More... | |
virtual | ~MLCG () |
The destructor is trivial. More... | |
virtual uInt | asuInt () |
Return the 32-random bits as an unsigned integer. More... | |
virtual void | reset () |
Resets the random number generator. More... | |
Int | seed1 () const |
Functions that allow the user to retrieve or change the seed integers. More... | |
void | seed1 (Int s) |
Int | seed2 () const |
void | seed2 (Int s) |
void | reseed (Int s1, Int s2) |
Public Member Functions inherited from casacore::RNG | |
virtual | ~RNG () |
A virtual destructor is needed to ensure that the destructor of derived classes gets used. More... | |
Float | asFloat () |
Return random bits converted to either a Float or a Double. More... | |
Double | asDouble () |
Private Attributes | |
Int | itsInitSeedOne |
Int | itsInitSeedTwo |
Int | itsSeedOne |
Int | itsSeedTwo |
Multiplicative linear congruential generator.
Public interface
MLCG stands for "Multiplicative Linear Congruential Generator"
The MLCG
class implements a Multiplicative Linear Congruential Generator. In particular, it is an implementation of the double MLCG described in Efficient and Portable Combined Random Number Generators by Pierre L'Ecuyer, appearing in Communications of the ACM, Vol. 31. No. 6. This generator has a fairly long period, and has been statistically analyzed to show that it gives good inter-sample independence.
The constructor has two parameters, both of which are seeds for the generator. As in the ACG
generator, both seeds are modified to give a "better" distribution of seed digits. Thus, you can safely use values such as 0
or 1
for the seeds. The MLCG
generator used much less state than the ACG
generator; only two integers (8 bytes) are needed for each generator.
Warning: This class assumes that the integer and unsigned integer type is exactly 32 bits long;
The constructor allows you to specify seeds.
|
virtual |
The destructor is trivial.
|
virtual |
Return the 32-random bits as an unsigned integer.
Implements casacore::RNG.
Definition at line 363 of file Random.h.
References itsInitSeedOne, itsInitSeedTwo, and reset().
|
virtual |
Resets the random number generator.
After calling this function the random numbers generated will be the same as if the object had just been constructed.
Implements casacore::RNG.
|
inline |
Functions that allow the user to retrieve or change the seed integers.
The seeds returned are not the user supplied values but the values obtained after some deterministic modification to produce a more uniform bit distribution.
Definition at line 341 of file Random.h.
References itsSeedOne.
|
inline |
Definition at line 346 of file Random.h.
References itsInitSeedOne, and reset().
|
inline |
Definition at line 352 of file Random.h.
References itsSeedTwo.
|
inline |
Definition at line 357 of file Random.h.
References itsInitSeedTwo, and reset().
|
private |
|
private |
|
private |
|
private |