ROOT
6.07/01
Reference Guide
|
MIXMAX Random number generator.
It is a matrix-recursive random number generator introduced by G. Savvidy in N.Z.Akopov, G.K.Savvidy and N.G.Ter-Arutyunian, Matrix Generator of Pseudorandom Numbers, J.Comput.Phys. 97, 573 (1991) DOI Link90016-E). This is a new very fast impelmentation by K. Savvidy by K. Savvidy and described in this paper, K. Savvidy, The MIXMAX Random Number Generator, Comp. Phys. Communic. (2015) DOI link
The period of the generator is 10^4682 for N=256, and 10^1597 for N=88
This implementation is only a wrapper around the real implemention, see mixmax.cxx and mixmax.h The generator, in C code, is available also at hepforge: http://mixmax.hepforge.org
Definition at line 54 of file MixMaxEngine.h.
Public Types | |
typedef TRandomEngine | BaseType |
Public Member Functions | |
MixMaxEngine (uint64_t seed=1) | |
virtual | ~MixMaxEngine () |
void | SetSeed (unsigned int seed) |
set the generator seed More... | |
void | SetSeed64 (uint64_t seed) |
set the generator seed using a 64 bits integer More... | |
virtual double | Rndm () |
double | operator() () |
generate a double random number (faster interface) More... | |
void | RndmArray (int n, double *array) |
generate an array of random numbers More... | |
uint64_t | IntRndm () |
generate a 64 bit integer number More... | |
Public Member Functions inherited from ROOT::Math::TRandomEngine | |
virtual | ~TRandomEngine () |
Public Member Functions inherited from ROOT::Math::RandomBaseEngine | |
virtual | ~RandomBaseEngine () |
Private Member Functions | |
double | Rndm_impl () |
implementation function to generrate the random number More... | |
Private Attributes | |
rng_state_t * | fRngState |
#include <Math/MixMaxEngine.h>
Definition at line 59 of file MixMaxEngine.h.
ROOT::Math::MixMaxEngine::MixMaxEngine | ( | uint64_t | seed = 1 | ) |
Definition at line 25 of file MixMaxEngine.cxx.
|
virtual |
Definition at line 30 of file MixMaxEngine.cxx.
uint64_t ROOT::Math::MixMaxEngine::IntRndm | ( | ) |
generate a 64 bit integer number
Definition at line 60 of file MixMaxEngine.cxx.
|
inline |
generate a double random number (faster interface)
Definition at line 75 of file MixMaxEngine.h.
|
inlinevirtual |
Implements ROOT::Math::RandomBaseEngine.
Definition at line 72 of file MixMaxEngine.h.
|
private |
implementation function to generrate the random number
Definition at line 55 of file MixMaxEngine.cxx.
Referenced by operator()(), and Rndm().
generate an array of random numbers
Definition at line 65 of file MixMaxEngine.cxx.
void ROOT::Math::MixMaxEngine::SetSeed | ( | unsigned int | seed | ) |
set the generator seed
Definition at line 39 of file MixMaxEngine.cxx.
void ROOT::Math::MixMaxEngine::SetSeed64 | ( | uint64_t | seed | ) |
set the generator seed using a 64 bits integer
Definition at line 44 of file MixMaxEngine.cxx.
Referenced by MixMaxEngine().
|
private |
Definition at line 88 of file MixMaxEngine.h.
Referenced by IntRndm(), MixMaxEngine(), Rndm_impl(), RndmArray(), SetSeed(), SetSeed64(), and ~MixMaxEngine().