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 (const int dim, double *pars, double *covmat, double *genpars) 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 distrbution. | |
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 91 of file GSLRndmEngines.cxx.
ROOT::Math::GSLRandomEngine::GSLRandomEngine | ( | GSLRngWrapper * | rng | ) |
create from an existing rng.
User manage the rng pointer which is then deleted olny by calling Terminate()
Definition at line 99 of file GSLRndmEngines.cxx.
ROOT::Math::GSLRandomEngine::GSLRandomEngine | ( | const GSLRandomEngine & | eng | ) |
Copy constructor : clone the contained GSL generator.
Definition at line 105 of file GSLRndmEngines.cxx.
|
virtual |
call Terminate()
Definition at line 110 of file GSLRndmEngines.cxx.
Beta distribution.
Definition at line 281 of file GSLRndmEngines.cxx.
Binomial distribution.
Definition at line 354 of file GSLRndmEngines.cxx.
Cauchy distribution.
Definition at line 269 of file GSLRndmEngines.cxx.
Chi square distribution.
Definition at line 299 of file GSLRndmEngines.cxx.
generate random numbers in a 2D circle of radious 1
Definition at line 336 of file GSLRndmEngines.cxx.
generate random numbers in a 3D sphere of radious 1
Definition at line 342 of file GSLRndmEngines.cxx.
|
inlineprotected |
internal method to return the engine Used by class like GSLMCIntegrator to set the engine
Definition at line 320 of file GSLRndmEngines.h.
Exponential distribution.
Definition at line 263 of file GSLRndmEngines.cxx.
F distrbution.
Definition at line 306 of file GSLRndmEngines.cxx.
Gamma distribution.
Definition at line 287 of file GSLRndmEngines.cxx.
Gaussian distribution - default method is Box-Muller (polar method)
Definition at line 218 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 238 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::GaussianND | ( | const int | dim, |
double * | pars, | ||
double * | covmat, | ||
double * | genpars | ||
) | const |
Multivariate Gaussian distribution.
Definition at line 244 of file GSLRndmEngines.cxx.
Gaussian distribution - Ratio method.
Definition at line 224 of file GSLRndmEngines.cxx.
Gaussian Tail distribution.
Definition at line 231 of file GSLRndmEngines.cxx.
Gaussian distribution - Ziggurat method.
Definition at line 212 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 127 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 275 of file GSLRndmEngines.cxx.
Logistic distribution.
Definition at line 324 of file GSLRndmEngines.cxx.
Log Normal distribution.
Definition at line 293 of file GSLRndmEngines.cxx.
unsigned long ROOT::Math::GSLRandomEngine::MaxInt | ( | ) | const |
return the maximum integer +1 a generator can handle
Definition at line 160 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 155 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 367 of file GSLRndmEngines.cxx.
std::string ROOT::Math::GSLRandomEngine::Name | ( | ) | const |
return name of generator
Definition at line 194 of file GSLRndmEngines.cxx.
Negative Binomial distribution.
Definition at line 360 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 143 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 116 of file GSLRndmEngines.cxx.
Pareto distribution.
Definition at line 330 of file GSLRndmEngines.cxx.
Poisson distribution.
Definition at line 348 of file GSLRndmEngines.cxx.
Generate an array of random numbers The iterators points to the random numbers.
Definition at line 165 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 318 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 150 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::SetSeed | ( | unsigned int | seed | ) | const |
set the random generator seed
Definition at line 173 of file GSLRndmEngines.cxx.
|
inlineprotected |
internal method used by the derived class to set the type of generators
Definition at line 314 of file GSLRndmEngines.h.
unsigned int ROOT::Math::GSLRandomEngine::Size | ( | ) | const |
return the state size of generator
Definition at line 202 of file GSLRndmEngines.cxx.
t student distribution
Definition at line 312 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::Terminate | ( | ) |
delete pointer to contained rng
Definition at line 134 of file GSLRndmEngines.cxx.
|
friend |
Definition at line 67 of file GSLRndmEngines.h.
|
mutableprivate |
Definition at line 327 of file GSLRndmEngines.h.
|
private |
Definition at line 326 of file GSLRndmEngines.h.