Logo ROOT   6.13/01
Reference Guide
List of all members | Public Member Functions | Private Attributes | List of all members
TRandom3 Class Reference

Random number generator class based on M.

Matsumoto and T. Nishimura, Mersenne Twister: A 623-diminsionally equidistributed uniform pseudorandom number generator ACM Transactions on Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp 3–30.

For more information see the Mersenne Twister homepage [http://www.math.keio.ac.jp/~matumoto/emt.html]

Advantage:

Drawback:

An altenativly excellent generator passing all tests of TestU01, having 61 random bits and fast as Mersenne and Twister is MIXMAX (TRandomMixMax).

Definition at line 27 of file TRandom3.h.

Public Member Functions

 TRandom3 (UInt_t seed=4357)
 Default constructor If seed is 0, the seed is automatically computed via a TUUID object. More...
 
virtual ~TRandom3 ()
 Default destructor. More...
 
virtual UInt_t GetSeed () const
 
virtual Double_t Rndm ()
 Machine independent random number generator. More...
 
virtual void RndmArray (Int_t n, Float_t *array)
 Return an array of n random numbers uniformly distributed in ]0,1]. More...
 
virtual void RndmArray (Int_t n, Double_t *array)
 Return an array of n random numbers uniformly distributed in ]0,1]. More...
 
virtual void SetSeed (ULong_t seed=0)
 Set the random generator sequence if seed is 0 (default value) a TUUID is generated and used to fill the first 8 integers of the seed array. More...
 
- Public Member Functions inherited from TRandom
 TRandom (UInt_t seed=65539)
 Default constructor. For seed see SetSeed(). More...
 
virtual ~TRandom ()
 Default destructor. More...
 
virtual Int_t Binomial (Int_t ntot, Double_t prob)
 Generates a random integer N according to the binomial law. More...
 
virtual Double_t BreitWigner (Double_t mean=0, Double_t gamma=1)
 Return a number distributed following a BreitWigner function with mean and gamma. More...
 
virtual void Circle (Double_t &x, Double_t &y, Double_t r)
 Generates random vectors, uniformly distributed over a circle of given radius. More...
 
virtual Double_t Exp (Double_t tau)
 Returns an exponential deviate. More...
 
virtual Double_t Gaus (Double_t mean=0, Double_t sigma=1)
 Samples a random number from the standard Normal (Gaussian) Distribution with the given mean and sigma. More...
 
virtual UInt_t Integer (UInt_t imax)
 Returns a random integer on [ 0, imax-1 ]. More...
 
virtual Double_t Landau (Double_t mean=0, Double_t sigma=1)
 Generate a random number following a Landau distribution with location parameter mu and scale parameter sigma: Landau( (x-mu)/sigma ) Note that mu is not the mpv(most probable value) of the Landa distribution and sigma is not the standard deviation of the distribution which is not defined. More...
 
virtual Int_t Poisson (Double_t mean)
 Generates a random integer N according to a Poisson law. More...
 
virtual Double_t PoissonD (Double_t mean)
 Generates a random number according to a Poisson law. More...
 
virtual void Rannor (Float_t &a, Float_t &b)
 Return 2 numbers distributed following a gaussian with mean=0 and sigma=1. More...
 
virtual void Rannor (Double_t &a, Double_t &b)
 Return 2 numbers distributed following a gaussian with mean=0 and sigma=1. More...
 
virtual void ReadRandom (const char *filename)
 Reads saved random generator status from filename. More...
 
virtual Double_t Rndm (Int_t)
 
virtual void Sphere (Double_t &x, Double_t &y, Double_t &z, Double_t r)
 Generates random vectors, uniformly distributed over the surface of a sphere of given radius. More...
 
virtual Double_t Uniform (Double_t x1=1)
 Returns a uniform deviate on the interval (0, x1). More...
 
virtual Double_t Uniform (Double_t x1, Double_t x2)
 Returns a uniform deviate on the interval (x1, x2). More...
 
virtual void WriteRandom (const char *filename) const
 Writes random generator status to filename. More...
 
- Public Member Functions inherited from ROOT::Math::TRandomEngine
virtual ~TRandomEngine ()
 

Private Attributes

Int_t fCount624
 
UInt_t fMt [624]
 

Additional Inherited Members

- Protected Attributes inherited from TRandom
UInt_t fSeed
 

#include <TRandom3.h>

Inheritance diagram for TRandom3:
[legend]

Constructor & Destructor Documentation

◆ TRandom3()

TRandom3::TRandom3 ( UInt_t  seed = 4357)

Default constructor If seed is 0, the seed is automatically computed via a TUUID object.

In this case the seed is guaranteed to be unique in space and time.

Definition at line 81 of file TRandom3.cxx.

◆ ~TRandom3()

TRandom3::~TRandom3 ( )
virtual

Default destructor.

Definition at line 91 of file TRandom3.cxx.

Member Function Documentation

◆ GetSeed()

virtual UInt_t TRandom3::GetSeed ( ) const
inlinevirtual

Reimplemented from TRandom.

Definition at line 37 of file TRandom3.h.

◆ Rndm()

Double_t TRandom3::Rndm ( )
virtual

Machine independent random number generator.

Produces uniformly-distributed floating points in (0,1) Method: Mersenne Twister

Reimplemented from TRandom.

Definition at line 100 of file TRandom3.cxx.

◆ RndmArray() [1/2]

void TRandom3::RndmArray ( Int_t  n,
Float_t *  array 
)
virtual

Return an array of n random numbers uniformly distributed in ]0,1].

Reimplemented from TRandom.

Definition at line 144 of file TRandom3.cxx.

◆ RndmArray() [2/2]

void TRandom3::RndmArray ( Int_t  n,
Double_t *  array 
)
virtual

Return an array of n random numbers uniformly distributed in ]0,1].

Reimplemented from TRandom.

Definition at line 152 of file TRandom3.cxx.

◆ SetSeed()

void TRandom3::SetSeed ( ULong_t  seed = 0)
virtual

Set the random generator sequence if seed is 0 (default value) a TUUID is generated and used to fill the first 8 integers of the seed array.

In this case the seed is guaranteed to be unique in space and time. Use upgraded seeding procedure to fix a known problem when seeding with values with many zero in the bit pattern (like 2**28). see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html

Reimplemented from TRandom.

Definition at line 207 of file TRandom3.cxx.

Member Data Documentation

◆ fCount624

Int_t TRandom3::fCount624
private

Definition at line 31 of file TRandom3.h.

◆ fMt

UInt_t TRandom3::fMt[624]
private

Definition at line 30 of file TRandom3.h.

Libraries for TRandom3:
[legend]

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