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

Random number generator class based on the maximally quidistributed combined Tausworthe generator by L'Ecuyer.

The period of the generator is 2**88 (about 10**26) and it uses only 3 words for the state.

For more information see: P. L'Ecuyer, Mathematics of Computation, 65, 213 (1996) P. L'Ecuyer, Mathematics of Computation, 68, 225 (1999)

The publication are available online at [http://www.iro.umontreal.ca/~lecuyer/myftp/papers/tausme.ps] [http://www.iro.umontreal.ca/~lecuyer/myftp/papers/tausme2.ps]

Definition at line 27 of file TRandom2.h.

Public Member Functions

 TRandom2 (UInt_t seed=1)
 Default constructor. More...
 
virtual ~TRandom2 ()
 Default destructor. More...
 
virtual Double_t Rndm ()
 TausWorth generator from L'Ecuyer, uses as seed 3x32bits integers Use a mask of 0xffffffffUL to make in work on 64 bit machines Periodicity of about 10**26 Generate number in interval (0,1) : 0 and 1 are not included in the interval. 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 generator seed. 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 GetSeed () const
 
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 ()
 

Protected Attributes

UInt_t fSeed1
 
UInt_t fSeed2
 
- Protected Attributes inherited from TRandom
UInt_t fSeed
 

#include <TRandom2.h>

Inheritance diagram for TRandom2:
[legend]

Constructor & Destructor Documentation

◆ TRandom2()

TRandom2::TRandom2 ( UInt_t  seed = 1)

Default constructor.

Definition at line 36 of file TRandom2.cxx.

◆ ~TRandom2()

TRandom2::~TRandom2 ( )
virtual

Default destructor.

Definition at line 46 of file TRandom2.cxx.

Member Function Documentation

◆ Rndm()

Double_t TRandom2::Rndm ( )
virtual

TausWorth generator from L'Ecuyer, uses as seed 3x32bits integers Use a mask of 0xffffffffUL to make in work on 64 bit machines Periodicity of about 10**26 Generate number in interval (0,1) : 0 and 1 are not included in the interval.

Reimplemented from TRandom.

Definition at line 56 of file TRandom2.cxx.

◆ RndmArray() [1/2]

void TRandom2::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 75 of file TRandom2.cxx.

◆ RndmArray() [2/2]

void TRandom2::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 95 of file TRandom2.cxx.

◆ SetSeed()

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

Set the generator seed.

If the seed given is zero, generate automatically seed values which are different every time by using TRandom3 and TUUID If a seed is given generate the other two needed for the generator state using a linear congruential generator The only condition, stated at the end of the 1999 L'Ecuyer paper is that the seeds must be greater than 1,7 and 15.

Reimplemented from TRandom.

Definition at line 120 of file TRandom2.cxx.

Member Data Documentation

◆ fSeed1

UInt_t TRandom2::fSeed1
protected

Definition at line 30 of file TRandom2.h.

◆ fSeed2

UInt_t TRandom2::fSeed2
protected

Definition at line 31 of file TRandom2.h.

Libraries for TRandom2:
[legend]

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