ROOT 6.08/07 Reference Guide |
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. More... | |
GSLRandomEngine (GSLRngWrapper *rng) | |
create from an existing rng. More... | |
GSLRandomEngine (const GSLRandomEngine &eng) | |
Copy constructor : clone the contained GSL generator. More... | |
virtual | ~GSLRandomEngine () |
call Terminate() More... | |
void | Initialize () |
initialize the generator If no rng is present the default one based on Mersenne and Twister is created More... | |
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. More... | |
unsigned long | MaxInt () const |
return the maximum integer +1 a generator can handle More... | |
unsigned long | MinInt () const |
return the minimum integer a generator can handle typically this value is 0 More... | |
std::string | Name () const |
return name of generator More... | |
double | operator() () const |
Generate a random number between ]0,1] 0 is excluded and 1 is included. More... | |
GSLRandomEngine & | operator= (const GSLRandomEngine &eng) |
Assignment operator : make a deep copy of the contained GSL generator. More... | |
template<class Iterator > | |
void | RandomArray (Iterator begin, Iterator end) const |
Generate an array of random numbers. More... | |
void | RandomArray (double *begin, double *end) const |
Generate an array of random numbers The iterators points to the random numbers. More... | |
double | Rndm () const |
Generate a random number between ]0,1] 0 is excluded and 1 is included. More... | |
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. More... | |
void | SetSeed (unsigned int seed) const |
set the random generator seed More... | |
unsigned int | Size () const |
return the state size of generator More... | |
void | Terminate () |
delete pointer to contained rng More... | |
Random Distributions | |
Implemented using the GSL Random number Distributions | |
double | Gaussian (double sigma) const |
Gaussian distribution - default method is Box-Muller (polar method) More... | |
double | GaussianZig (double sigma) const |
Gaussian distribution - Ziggurat method. More... | |
double | GaussianRatio (double sigma) const |
Gaussian distribution - Ratio method. More... | |
double | GaussianTail (double a, double sigma) const |
Gaussian Tail distribution. More... | |
void | Gaussian2D (double sigmaX, double sigmaY, double rho, double &x, double &y) const |
Bivariate Gaussian distribution with correlation. More... | |
double | Exponential (double mu) const |
Exponential distribution. More... | |
double | Cauchy (double a) const |
Cauchy distribution. More... | |
double | Landau () const |
Landau distribution. More... | |
double | Gamma (double a, double b) const |
Gamma distribution. More... | |
double | Beta (double a, double b) const |
Beta distribution. More... | |
double | LogNormal (double zeta, double sigma) const |
Log Normal distribution. More... | |
double | ChiSquare (double nu) const |
Chi square distribution. More... | |
double | FDist (double nu1, double nu2) const |
F distrbution. More... | |
double | tDist (double nu) const |
t student distribution More... | |
double | Rayleigh (double sigma) const |
Rayleigh distribution. More... | |
double | Logistic (double a) const |
Logistic distribution. More... | |
double | Pareto (double a, double b) const |
Pareto distribution. More... | |
void | Dir2D (double &x, double &y) const |
generate random numbers in a 2D circle of radious 1 More... | |
void | Dir3D (double &x, double &y, double &z) const |
generate random numbers in a 3D sphere of radious 1 More... | |
unsigned int | Poisson (double mu) const |
Poisson distribution. More... | |
unsigned int | Binomial (double p, unsigned int n) const |
Binomial distribution. More... | |
unsigned int | NegativeBinomial (double p, double n) const |
Negative Binomial distribution. More... | |
std::vector< unsigned int > | Multinomial (unsigned int ntot, const std::vector< double > &p) const |
Multinomial distribution. More... | |
Protected Member Functions | |
GSLRngWrapper * | Engine () |
internal method to return the engine Used by class like GSLMCIntegrator to set the engine More... | |
void | SetType (GSLRngWrapper *r) |
internal method used by the derived class to set the type of generators More... | |
Private Attributes | |
unsigned int | fCurTime |
GSLRngWrapper * | fRng |
Friends | |
class | GSLMCIntegrator |
#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 60 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 68 of file GSLRndmEngines.cxx.
ROOT::Math::GSLRandomEngine::GSLRandomEngine | ( | const GSLRandomEngine & | eng | ) |
Copy constructor : clone the contained GSL generator.
Definition at line 74 of file GSLRndmEngines.cxx.
|
virtual |
call Terminate()
Definition at line 79 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::Beta | ( | double | a, |
double | b | ||
) | const |
Beta distribution.
Definition at line 231 of file GSLRndmEngines.cxx.
unsigned int ROOT::Math::GSLRandomEngine::Binomial | ( | double | p, |
unsigned int | n | ||
) | const |
Binomial distribution.
Definition at line 304 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::Cauchy | ( | double | a | ) | const |
Cauchy distribution.
Definition at line 219 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::ChiSquare | ( | double | nu | ) | const |
Chi square distribution.
Definition at line 249 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::Dir2D | ( | double & | x, |
double & | y | ||
) | const |
generate random numbers in a 2D circle of radious 1
Definition at line 286 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::Dir3D | ( | double & | x, |
double & | y, | ||
double & | z | ||
) | const |
generate random numbers in a 3D sphere of radious 1
Definition at line 292 of file GSLRndmEngines.cxx.
|
inlineprotected |
internal method to return the engine Used by class like GSLMCIntegrator to set the engine
Definition at line 315 of file GSLRndmEngines.h.
double ROOT::Math::GSLRandomEngine::Exponential | ( | double | mu | ) | const |
Exponential distribution.
Definition at line 213 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::FDist | ( | double | nu1, |
double | nu2 | ||
) | const |
F distrbution.
Definition at line 256 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::Gamma | ( | double | a, |
double | b | ||
) | const |
Gamma distribution.
Definition at line 237 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::Gaussian | ( | double | sigma | ) | const |
Gaussian distribution - default method is Box-Muller (polar method)
Definition at line 187 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 207 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::GaussianRatio | ( | double | sigma | ) | const |
Gaussian distribution - Ratio method.
Definition at line 193 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::GaussianTail | ( | double | a, |
double | sigma | ||
) | const |
Gaussian Tail distribution.
Definition at line 200 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::GaussianZig | ( | double | sigma | ) | const |
Gaussian distribution - Ziggurat method.
Definition at line 181 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 96 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 225 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::Logistic | ( | double | a | ) | const |
Logistic distribution.
Definition at line 274 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::LogNormal | ( | double | zeta, |
double | sigma | ||
) | const |
Log Normal distribution.
Definition at line 243 of file GSLRndmEngines.cxx.
unsigned long ROOT::Math::GSLRandomEngine::MaxInt | ( | ) | const |
return the maximum integer +1 a generator can handle
Definition at line 129 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 124 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 317 of file GSLRndmEngines.cxx.
std::string ROOT::Math::GSLRandomEngine::Name | ( | ) | const |
return name of generator
Definition at line 163 of file GSLRndmEngines.cxx.
unsigned int ROOT::Math::GSLRandomEngine::NegativeBinomial | ( | double | p, |
double | n | ||
) | const |
Negative Binomial distribution.
Definition at line 310 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 112 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 85 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::Pareto | ( | double | a, |
double | b | ||
) | const |
Pareto distribution.
Definition at line 280 of file GSLRndmEngines.cxx.
unsigned int ROOT::Math::GSLRandomEngine::Poisson | ( | double | mu | ) | const |
Poisson distribution.
Definition at line 298 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.
void ROOT::Math::GSLRandomEngine::RandomArray | ( | double * | begin, |
double * | end | ||
) | const |
Generate an array of random numbers The iterators points to the random numbers.
Definition at line 134 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::Rayleigh | ( | double | sigma | ) | const |
Rayleigh distribution.
Definition at line 268 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 119 of file GSLRndmEngines.cxx.
void ROOT::Math::GSLRandomEngine::SetSeed | ( | unsigned int | seed | ) | const |
set the random generator seed
Definition at line 142 of file GSLRndmEngines.cxx.
|
inlineprotected |
internal method used by the derived class to set the type of generators
Definition at line 309 of file GSLRndmEngines.h.
unsigned int ROOT::Math::GSLRandomEngine::Size | ( | ) | const |
return the state size of generator
Definition at line 171 of file GSLRndmEngines.cxx.
double ROOT::Math::GSLRandomEngine::tDist | ( | double | nu | ) | const |
t student distribution
Definition at line 262 of file GSLRndmEngines.cxx.
delete pointer to contained rng
Definition at line 103 of file GSLRndmEngines.cxx.
|
friend |
Definition at line 67 of file GSLRndmEngines.h.
|
mutableprivate |
Definition at line 322 of file GSLRndmEngines.h.
|
private |
Definition at line 321 of file GSLRndmEngines.h.