ROOT   Reference Guide
Searching...
No Matches
ROOT::Math::RandomFunctions< Engine, EngineBaseType > Class Template Reference
template<class Engine, class EngineBaseType>
class ROOT::Math::RandomFunctions< Engine, EngineBaseType >

Definition at line 140 of file RandomFunctions.h.

## Public Member Functions

RandomFunctions (Engine &rng)

~RandomFunctions ()
destructor (no op) we do not maintain the engine)

double Beta (double, double)

int Binomial (int ntot, double prob)
Generate binomial numbers.

double BreitWigner (double mean, double gamma)
Return a number distributed following a BreitWigner function with mean and gamma.

double ChiSquare (double)

void Circle (double &x, double &y, double r)
Generates random vectors, uniformly distributed over a circle of given radius.

double Exp (double tau)
Returns an exponential deviate.

double FDist (double, double)

double Gamma (double, double)
methods which are only for GSL random generators

double Gaus (double mean, double sigma)
generate Gaussian number using default method

double GausACR (double mean, double sigma)
generate random numbers according to the Acceptance-Complement-Ratio method

double GausBM (double mean, double sigma)
generate Gaussian number using Box-Muller method

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 )

double Logistic (double)

double LogNormal (double, double)

std::vector< unsigned intMultiNomial (unsigned int, const std::vector< double > &)

unsigned int NegativeBinomial (double, double)

double operator() ()
non-virtual method

double Pareto (double, double)

int Poisson (double mean)
Generates a random integer N according to a Poisson law.

double PoissonD (double mean)

void Rannor (double &a, double &b)
Generate numbers distributed following a gaussian with mean=0 and sigma=1.

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.

double tDist (double)

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

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

## Protected Member Functions

double Rndm_impl ()
Internal implementation to return random number Since this one is not a virtual function is faster than Rndm.

Engine & Rng ()

## Private Attributes

Engine * fEngine

RandomFunctionsImpl< EngineBaseType > fImpl
random number generator engine

#include <Math/RandomFunctions.h>

## ◆ RandomFunctions()

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

Definition at line 147 of file RandomFunctions.h.

## ◆ ~RandomFunctions()

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

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

Definition at line 152 of file RandomFunctions.h.

## ◆ Beta()

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

Definition at line 253 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 160 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 165 of file RandomFunctions.h.

## ◆ ChiSquare()

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

Definition at line 261 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 172 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 178 of file RandomFunctions.h.

## ◆ FDist()

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

Definition at line 277 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 248 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 default method

Definition at line 228 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 Acceptance-Complement-Ratio method

Definition at line 188 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 183 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 195 of file RandomFunctions.h.

## ◆ Logistic()

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

Definition at line 269 of file RandomFunctions.h.

## ◆ LogNormal()

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

Definition at line 257 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 289 of file RandomFunctions.h.

## ◆ NegativeBinomial()

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

Definition at line 285 of file RandomFunctions.h.

## ◆ operator()()

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

non-virtual method

Definition at line 156 of file RandomFunctions.h.

## ◆ Pareto()

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

Definition at line 273 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 201 of file RandomFunctions.h.

## ◆ PoissonD()

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

Definition at line 202 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 206 of file RandomFunctions.h.

## ◆ Rayleigh()

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

Definition at line 265 of file RandomFunctions.h.

## ◆ Rndm_impl()

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

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

Definition at line 301 of file RandomFunctions.h.

## ◆ Rng()

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

Definition at line 297 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 212 of file RandomFunctions.h.

## ◆ tDist()

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

Definition at line 281 of file RandomFunctions.h.

## ◆ Uniform() [1/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 222 of file RandomFunctions.h.

## ◆ Uniform() [2/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 217 of file RandomFunctions.h.

## ◆ fEngine

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

Definition at line 306 of file RandomFunctions.h.

## ◆ fImpl

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

random number generator engine

Definition at line 307 of file RandomFunctions.h.

• math/mathcore/inc/Math/RandomFunctions.h