ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
ROOT::Math::MixMaxEngine Class Reference

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_tfRngState
 

#include <Math/MixMaxEngine.h>

Inheritance diagram for ROOT::Math::MixMaxEngine:
[legend]

Member Typedef Documentation

Definition at line 59 of file MixMaxEngine.h.

Constructor & Destructor Documentation

ROOT::Math::MixMaxEngine::MixMaxEngine ( uint64_t  seed = 1)

Definition at line 25 of file MixMaxEngine.cxx.

ROOT::Math::MixMaxEngine::~MixMaxEngine ( )
virtual

Definition at line 30 of file MixMaxEngine.cxx.

Member Function Documentation

uint64_t ROOT::Math::MixMaxEngine::IntRndm ( )

generate a 64 bit integer number

Definition at line 60 of file MixMaxEngine.cxx.

double ROOT::Math::MixMaxEngine::operator() ( )
inline

generate a double random number (faster interface)

Definition at line 75 of file MixMaxEngine.h.

virtual double ROOT::Math::MixMaxEngine::Rndm ( )
inlinevirtual

Implements ROOT::Math::RandomBaseEngine.

Definition at line 72 of file MixMaxEngine.h.

double ROOT::Math::MixMaxEngine::Rndm_impl ( )
private

implementation function to generrate the random number

Definition at line 55 of file MixMaxEngine.cxx.

Referenced by operator()(), and Rndm().

void ROOT::Math::MixMaxEngine::RndmArray ( int  n,
double array 
)

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().

Member Data Documentation

rng_state_t* ROOT::Math::MixMaxEngine::fRngState
private
Collaboration diagram for ROOT::Math::MixMaxEngine:
[legend]

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