Logo ROOT   6.19/01
Reference Guide
ROOT::Math::RandomFunctions< Engine, EngineBaseType > Class Template Reference

template<class Engine, class EngineBaseType>
class ROOT::Math::RandomFunctions< Engine, EngineBaseType >

Definition at line 139 of file RandomFunctions.h.

Public Member Functions

 RandomFunctions (Engine &rng)
 
 ~RandomFunctions ()
 destructor (no op) we do not mantain the engine) More...
 
double Beta (double, double)
 
int Binomial (int ntot, double prob)
 Generate binomial numbers. More...
 
double BreitWigner (double mean, double gamma)
 Return a number distributed following a BreitWigner function with mean and gamma. More...
 
double ChiSquare (double)
 
void Circle (double &x, double &y, double r)
 Generates random vectors, uniformly distributed over a circle of given radius. More...
 
double Exp (double tau)
 Returns an exponential deviate. More...
 
double FDist (double, double)
 
double Gamma (double, double)
 methods which are only for GSL random generators More...
 
double Gaus (double mean, double sigma)
 generate Gaussian number using defqault method More...
 
double GausACR (double mean, double sigma)
 generate random numbers according to the Accemptance-Complemet-Ratio method More...
 
double GausBM (double mean, double sigma)
 generate Gaussian number using Box-Muller method More...
 
double Landau (double mu, double sigma)
 Generate a random number following a Landau distribution with location parameter mu and scale parameter sigma: Landau( (x-mu)/sigma ) More...
 
double Logistic (double)
 
double LogNormal (double, double)
 
std::vector< unsigned int > MultiNomial (unsigned int, const std::vector< double > &)
 
unsigned int NegativeBinomial (double, double)
 
double operator() ()
 non-virtual method More...
 
double Pareto (double, double)
 
int Poisson (double mean)
 Generates a random integer N according to a Poisson law. More...
 
double PoissonD (double mean)
 
void Rannor (double &a, double &b)
 Generate numbers distributed following a gaussian with mean=0 and sigma=1. More...
 
double Rayleigh (double)
 
void Sphere (double &x, double &y, double &z, double r)
 Generates random vectors, uniformly distributed over the surface of a sphere of given radius. More...
 
double tDist (double)
 
double Uniform (double a, double b)
 generate random numbers following a Uniform distribution in the [a,b] interval More...
 
double Uniform (double a)
 generate random numbers following a Uniform distribution in the [0,a] interval More...
 

Protected Member Functions

double Rndm_impl ()
 Internal impelmentation to return random number Since this one is not a virtual function is faster than Rndm. More...
 
Engine & Rng ()
 

Private Attributes

Engine * fEngine
 
RandomFunctionsImpl< EngineBaseType > fImpl
 random number generator engine More...
 

#include <Math/RandomFunctions.h>

Constructor & Destructor Documentation

◆ RandomFunctions()

template<class Engine, class EngineBaseType>
ROOT::Math::RandomFunctions< Engine, EngineBaseType >::RandomFunctions ( Engine &  rng)
inline

Definition at line 146 of file RandomFunctions.h.

◆ ~RandomFunctions()

template<class Engine, class EngineBaseType>
ROOT::Math::RandomFunctions< Engine, EngineBaseType >::~RandomFunctions ( )
inline

destructor (no op) we do not mantain the engine)

Definition at line 151 of file RandomFunctions.h.

Member Function Documentation

◆ Beta()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Beta ( double  ,
double   
)
inline

Definition at line 252 of file RandomFunctions.h.

◆ Binomial()

template<class Engine, class EngineBaseType>
int ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Binomial ( int  ntot,
double  prob 
)
inline

Generate binomial numbers.

Definition at line 159 of file RandomFunctions.h.

◆ BreitWigner()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::BreitWigner ( double  mean,
double  gamma 
)
inline

Return a number distributed following a BreitWigner function with mean and gamma.

Definition at line 164 of file RandomFunctions.h.

◆ ChiSquare()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::ChiSquare ( double  )
inline

Definition at line 260 of file RandomFunctions.h.

◆ Circle()

template<class Engine, class EngineBaseType>
void ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Circle ( double &  x,
double &  y,
double  r 
)
inline

Generates random vectors, uniformly distributed over a circle of given radius.

Input : r = circle radius Output: x,y a random 2-d vector of length r

Definition at line 171 of file RandomFunctions.h.

◆ Exp()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Exp ( double  tau)
inline

Returns an exponential deviate.

exp( -t/tau )

Definition at line 177 of file RandomFunctions.h.

◆ FDist()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::FDist ( double  ,
double   
)
inline

Definition at line 276 of file RandomFunctions.h.

◆ Gamma()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Gamma ( double  ,
double   
)
inline

methods which are only for GSL random generators

Gamma functions (not implemented here, requires a GSL random engine)

Definition at line 247 of file RandomFunctions.h.

◆ Gaus()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Gaus ( double  mean,
double  sigma 
)
inline

generate Gaussian number using defqault method

Definition at line 227 of file RandomFunctions.h.

◆ GausACR()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::GausACR ( double  mean,
double  sigma 
)
inline

generate random numbers according to the Accemptance-Complemet-Ratio method

Definition at line 187 of file RandomFunctions.h.

◆ GausBM()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::GausBM ( double  mean,
double  sigma 
)
inline

generate Gaussian number using Box-Muller method

Definition at line 182 of file RandomFunctions.h.

◆ Landau()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Landau ( double  mu,
double  sigma 
)
inline

Generate a random number following a Landau distribution with location parameter mu and scale parameter sigma: Landau( (x-mu)/sigma )

Definition at line 194 of file RandomFunctions.h.

◆ Logistic()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Logistic ( double  )
inline

Definition at line 268 of file RandomFunctions.h.

◆ LogNormal()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::LogNormal ( double  ,
double   
)
inline

Definition at line 256 of file RandomFunctions.h.

◆ MultiNomial()

template<class Engine, class EngineBaseType>
std::vector<unsigned int> ROOT::Math::RandomFunctions< Engine, EngineBaseType >::MultiNomial ( unsigned  int,
const std::vector< double > &   
)
inline

Definition at line 288 of file RandomFunctions.h.

◆ NegativeBinomial()

template<class Engine, class EngineBaseType>
unsigned int ROOT::Math::RandomFunctions< Engine, EngineBaseType >::NegativeBinomial ( double  ,
double   
)
inline

Definition at line 284 of file RandomFunctions.h.

◆ operator()()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::operator() ( )
inline

non-virtual method

Definition at line 155 of file RandomFunctions.h.

◆ Pareto()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Pareto ( double  ,
double   
)
inline

Definition at line 272 of file RandomFunctions.h.

◆ Poisson()

template<class Engine, class EngineBaseType>
int ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Poisson ( double  mean)
inline

Generates a random integer N according to a Poisson law.

Prob(N) = exp(-mean)*mean^N/Factorial(N)

Definition at line 200 of file RandomFunctions.h.

◆ PoissonD()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::PoissonD ( double  mean)
inline

Definition at line 201 of file RandomFunctions.h.

◆ Rannor()

template<class Engine, class EngineBaseType>
void ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Rannor ( double &  a,
double &  b 
)
inline

Generate numbers distributed following a gaussian with mean=0 and sigma=1.

Using the Box-Muller method

Definition at line 205 of file RandomFunctions.h.

◆ Rayleigh()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Rayleigh ( double  )
inline

Definition at line 264 of file RandomFunctions.h.

◆ Rndm_impl()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Rndm_impl ( )
inlineprotected

Internal impelmentation to return random number Since this one is not a virtual function is faster than Rndm.

Definition at line 300 of file RandomFunctions.h.

◆ Rng()

template<class Engine, class EngineBaseType>
Engine& ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Rng ( )
inlineprotected

Definition at line 296 of file RandomFunctions.h.

◆ Sphere()

template<class Engine, class EngineBaseType>
void ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Sphere ( double &  x,
double &  y,
double &  z,
double  r 
)
inline

Generates random vectors, uniformly distributed over the surface of a sphere of given radius.

Definition at line 211 of file RandomFunctions.h.

◆ tDist()

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::tDist ( double  )
inline

Definition at line 280 of file RandomFunctions.h.

◆ Uniform() [1/2]

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Uniform ( double  a,
double  b 
)
inline

generate random numbers following a Uniform distribution in the [a,b] interval

Definition at line 216 of file RandomFunctions.h.

◆ Uniform() [2/2]

template<class Engine, class EngineBaseType>
double ROOT::Math::RandomFunctions< Engine, EngineBaseType >::Uniform ( double  a)
inline

generate random numbers following a Uniform distribution in the [0,a] interval

Definition at line 221 of file RandomFunctions.h.

Member Data Documentation

◆ fEngine

template<class Engine, class EngineBaseType>
Engine* ROOT::Math::RandomFunctions< Engine, EngineBaseType >::fEngine
private

Definition at line 305 of file RandomFunctions.h.

◆ fImpl

template<class Engine, class EngineBaseType>
RandomFunctionsImpl<EngineBaseType> ROOT::Math::RandomFunctions< Engine, EngineBaseType >::fImpl
private

random number generator engine

Definition at line 306 of file RandomFunctions.h.


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