GSLRandomEngine Base class for all GSL random engines, normally user instantiate the derived classes which creates internally the generator.
The main GSL generators (see here) are available as derived classes In addition to generate uniform numbers it provides method for generating numbers according to pre-defined distributions using the GSL functions from GSL random number distributions.
Definition at line 65 of file GSLRndmEngines.h.
Public Member Functions | |
GSLRandomEngine () | |
default constructor. | |
GSLRandomEngine (const GSLRandomEngine &eng) | |
Copy constructor : clone the contained GSL generator. | |
GSLRandomEngine (GSLRngWrapper *rng) | |
create from an existing rng. | |
virtual | ~GSLRandomEngine () |
call Terminate() | |
void | Initialize () |
initialize the generator If no rng is present the default one based on Mersenne and Twister is created | |
unsigned long | IntRndm () const |
Generate an integer number between [0,max_generator-1] (including 0 and max-1) if max is larger than available range of algorithm an error message is printed and zero is returned. | |
unsigned long | MaxInt () const |
return the maximum integer +1 a generator can handle | |
unsigned long | MinInt () const |
return the minimum integer a generator can handle typically this value is 0 | |
std::string | Name () const |
return name of generator | |
double | operator() () const |
Generate a random number between ]0,1] 0 is excluded and 1 is included. | |
GSLRandomEngine & | operator= (const GSLRandomEngine &eng) |
Assignment operator : make a deep copy of the contained GSL generator. | |
void | RandomArray (double *begin, double *end) const |
Generate an array of random numbers The iterators points to the random numbers. | |
template<class Iterator > | |
void | RandomArray (Iterator begin, Iterator end) const |
Generate an array of random numbers. | |
double | Rndm () const |
Generate a random number between ]0,1] 0 is excluded and 1 is included. | |
unsigned long | RndmInt (unsigned long max) const |
Generate an integer number between [0,max-1] (including 0 and max-1) if max is larger than available range of algorithm an error message is printed and zero is returned. | |
void | SetSeed (unsigned int seed) const |
set the random generator seed | |
unsigned int | Size () const |
return the state size of generator | |
void | Terminate () |
delete pointer to contained rng | |
Friends | |
class | GSLMCIntegrator |
Random Distributions | |
Implemented using the GSL Random number Distributions | |
GSLRngWrapper * | fRng |
unsigned int | fCurTime |
double | Gaussian (double sigma) const |
Gaussian distribution - default method is Box-Muller (polar method) | |
double | GaussianZig (double sigma) const |
Gaussian distribution - Ziggurat method. | |
double | GaussianRatio (double sigma) const |
Gaussian distribution - Ratio method. | |
double | GaussianTail (double a, double sigma) const |
Gaussian Tail distribution. | |
void | Gaussian2D (double sigmaX, double sigmaY, double rho, double &x, double &y) const |
Bivariate Gaussian distribution with correlation. | |
void | GaussianND (size_t dim, const double *pars, const double *covmat, double *genpars, double *lmat=nullptr) const |
Multivariate Gaussian distribution. | |
double | Exponential (double mu) const |
Exponential distribution. | |
double | Cauchy (double a) const |
Cauchy distribution. | |
double | Landau () const |
Landau distribution. | |
double | Gamma (double a, double b) const |
Gamma distribution. | |
double | Beta (double a, double b) const |
Beta distribution. | |
double | LogNormal (double zeta, double sigma) const |
Log Normal distribution. | |
double | ChiSquare (double nu) const |
Chi square distribution. | |
double | FDist (double nu1, double nu2) const |
F distribution. | |
double | tDist (double nu) const |
t student distribution | |
double | Rayleigh (double sigma) const |
Rayleigh distribution. | |
double | Logistic (double a) const |
Logistic distribution. | |
double | Pareto (double a, double b) const |
Pareto distribution. | |
void | Dir2D (double &x, double &y) const |
generate random numbers in a 2D circle of radious 1 | |
void | Dir3D (double &x, double &y, double &z) const |
generate random numbers in a 3D sphere of radious 1 | |
unsigned int | Poisson (double mu) const |
Poisson distribution. | |
unsigned int | Binomial (double p, unsigned int n) const |
Binomial distribution. | |
unsigned int | NegativeBinomial (double p, double n) const |
Negative Binomial distribution. | |
std::vector< unsigned int > | Multinomial (unsigned int ntot, const std::vector< double > &p) const |
Multinomial distribution. | |
void | SetType (GSLRngWrapper *r) |
internal method used by the derived class to set the type of generators | |
GSLRngWrapper * | Engine () |
internal method to return the engine Used by class like GSLMCIntegrator to set the engine | |
#include <Math/GSLRndmEngines.h>
ROOT::Math::GSLRandomEngine::GSLRandomEngine | ( | ) |
default constructor.
No creation of rng is done. If then Initialize() is called an engine is created based on default GSL type (MT)
Definition at line 88 of file GSLRndmEngines.cxx.
ROOT::Math::GSLRandomEngine::GSLRandomEngine | ( | GSLRngWrapper * | rng | ) |
create from an existing rng.
User manage the rng pointer which is then deleted only by calling Terminate()
Definition at line 96 of file GSLRndmEngines.cxx.
ROOT::Math::GSLRandomEngine::GSLRandomEngine | ( | const GSLRandomEngine & | eng | ) |
Copy constructor : clone the contained GSL generator.
Definition at line 102 of file GSLRndmEngines.cxx.
|
virtual |
call Terminate()
Definition at line 107 of file GSLRndmEngines.cxx.
Beta distribution.
Definition at line 293 of file GSLRndmEngines.cxx.
Binomial distribution.
Definition at line 366 of file GSLRndmEngines.cxx.
Cauchy distribution.
Definition at line 281 of file GSLRndmEngines.cxx.
Chi square distribution.
Definition at line 311 of file GSLRndmEngines.cxx.
generate random numbers in a 2D circle of radious 1
Definition at line 348 of file GSLRndmEngines.cxx.
generate random numbers in a 3D sphere of radious 1
Definition at line 354 of file GSLRndmEngines.cxx.
|
inlineprotected |
internal method to return the engine Used by class like GSLMCIntegrator to set the engine
Definition at line 321 of file GSLRndmEngines.h.
Exponential distribution.
Definition at line 275 of file GSLRndmEngines.cxx.
F distribution.
Definition at line 318 of file GSLRndmEngines.cxx.
Gamma distribution.
Definition at line 299 of file GSLRndmEngines.cxx.
Gaussian distribution - default method is Box-Muller (polar method)
Definition at line 215 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::Gaussian2D | ( | double | sigmaX, |
double | sigmaY, | ||
double | rho, | ||
double & | x, | ||
double & | y | ||
) | const |
Bivariate Gaussian distribution with correlation.
Definition at line 235 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::GaussianND | ( | size_t | dim, |
const double * | pars, | ||
const double * | covmat, | ||
double * | genpars, | ||
double * | lmat = nullptr |
||
) | const |
Multivariate Gaussian distribution.
Definition at line 241 of file GSLRndmEngines.cxx.
Gaussian distribution - Ratio method.
Definition at line 221 of file GSLRndmEngines.cxx.
Gaussian Tail distribution.
Definition at line 228 of file GSLRndmEngines.cxx.
Gaussian distribution - Ziggurat method.
Definition at line 209 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::Initialize | ( | ) |
initialize the generator If no rng is present the default one based on Mersenne and Twister is created
Definition at line 124 of file GSLRndmEngines.cxx.
|
inline |
Generate an integer number between [0,max_generator-1] (including 0 and max-1) if max is larger than available range of algorithm an error message is printed and zero is returned.
Definition at line 133 of file GSLRndmEngines.h.
double ROOT::Math::GSLRandomEngine::Landau | ( | ) | const |
Landau distribution.
Definition at line 287 of file GSLRndmEngines.cxx.
Logistic distribution.
Definition at line 336 of file GSLRndmEngines.cxx.
Log Normal distribution.
Definition at line 305 of file GSLRndmEngines.cxx.
unsigned long ROOT::Math::GSLRandomEngine::MaxInt | ( | ) | const |
return the maximum integer +1 a generator can handle
Definition at line 157 of file GSLRndmEngines.cxx.
unsigned long ROOT::Math::GSLRandomEngine::MinInt | ( | ) | const |
return the minimum integer a generator can handle typically this value is 0
Definition at line 152 of file GSLRndmEngines.cxx.
std::vector< unsigned int > ROOT::Math::GSLRandomEngine::Multinomial | ( | unsigned int | ntot, |
const std::vector< double > & | p | ||
) | const |
Multinomial distribution.
Definition at line 379 of file GSLRndmEngines.cxx.
std::string ROOT::Math::GSLRandomEngine::Name | ( | ) | const |
return name of generator
Definition at line 191 of file GSLRndmEngines.cxx.
Negative Binomial distribution.
Definition at line 372 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::operator() | ( | ) | const |
Generate a random number between ]0,1] 0 is excluded and 1 is included.
Definition at line 140 of file GSLRndmEngines.cxx.
GSLRandomEngine & ROOT::Math::GSLRandomEngine::operator= | ( | const GSLRandomEngine & | eng | ) |
Assignment operator : make a deep copy of the contained GSL generator.
Definition at line 113 of file GSLRndmEngines.cxx.
Pareto distribution.
Definition at line 342 of file GSLRndmEngines.cxx.
Poisson distribution.
Definition at line 360 of file GSLRndmEngines.cxx.
Generate an array of random numbers The iterators points to the random numbers.
Definition at line 162 of file GSLRndmEngines.cxx.
|
inline |
Generate an array of random numbers.
The iterators points to the random numbers
Definition at line 142 of file GSLRndmEngines.h.
Rayleigh distribution.
Definition at line 330 of file GSLRndmEngines.cxx.
|
inline |
Generate a random number between ]0,1] 0 is excluded and 1 is included.
Definition at line 120 of file GSLRndmEngines.h.
unsigned long ROOT::Math::GSLRandomEngine::RndmInt | ( | unsigned long | max | ) | const |
Generate an integer number between [0,max-1] (including 0 and max-1) if max is larger than available range of algorithm an error message is printed and zero is returned.
Definition at line 147 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::SetSeed | ( | unsigned int | seed | ) | const |
set the random generator seed
Definition at line 170 of file GSLRndmEngines.cxx.
|
inlineprotected |
internal method used by the derived class to set the type of generators
Definition at line 315 of file GSLRndmEngines.h.
unsigned int ROOT::Math::GSLRandomEngine::Size | ( | ) | const |
return the state size of generator
Definition at line 199 of file GSLRndmEngines.cxx.
t student distribution
Definition at line 324 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::Terminate | ( | ) |
delete pointer to contained rng
Definition at line 131 of file GSLRndmEngines.cxx.
|
friend |
Definition at line 67 of file GSLRndmEngines.h.
|
mutableprivate |
Definition at line 328 of file GSLRndmEngines.h.
|
private |
Definition at line 327 of file GSLRndmEngines.h.