Simpact Cyan
Population based event driven simulation using mNRM
gslrandomnumbergenerator.h
Go to the documentation of this file.
1 #ifndef GSLRANDOMNUMBERGENERATOR_H
2 
3 #define GSLRANDOMNUMBERGENERATOR_H
4 
9 #include <gsl/gsl_rng.h>
10 #include <utility>
11 
17 {
18 public:
23 
25  GslRandomNumberGenerator(int seed);
27 
29  double pickRandomDouble();
30 
32  int pickRandomInt(int min, int max);
33 
36  unsigned int pickPoissonNumber(double lambda);
37 
40  double pickGaussianNumber(double mean, double sigma);
41 
44  double pickBetaNumber(double a, double b);
45 
47  double pickWeibull(double lambda, double kappa);
48 
51  double pickWeibull(double lambda, double kappa, double ageMin);
52 
55  double pickLogNorm(double zeta, double sigma);
56 
59  double pickGamma(double a, double b);
60 
63  std::pair<double,double> pickBivariateGaussian(double muX, double muY, double sigmaX, double sigmaY, double rho);
64 private:
65  gsl_rng *m_pRng;
66 };
67 
68 #endif // GSLRANDOMNUMBERGENERATOR_H
double pickGamma(double a, double b)
Picks a random number from the gamma distribution with a and b defined as in the formula prob(x) = x^...
Definition: gslrandomnumbergenerator.cpp:170
int pickRandomInt(int min, int max)
Chooses a random number from min to max (both are included).
Definition: gslrandomnumbergenerator.cpp:104
std::pair< double, double > pickBivariateGaussian(double muX, double muY, double sigmaX, double sigmaY, double rho)
Picks a random number from a two dimensional gaussian distribution with specified parameters (rho is ...
Definition: gslrandomnumbergenerator.cpp:177
GslRandomNumberGenerator()
Initialize the random number generator with a random seed, A specific seed can still be forced by set...
Definition: gslrandomnumbergenerator.cpp:20
This class allows you to generate random numbers, and uses the GNU Scientific Library for this...
Definition: gslrandomnumbergenerator.h:16
unsigned int pickPoissonNumber(double lambda)
Chooses a random number according to the Poisson distribution with parameter lambda.
Definition: gslrandomnumbergenerator.cpp:122
double pickLogNorm(double zeta, double sigma)
Picks a random number from a log-normal distribution with parameters zeta and sigma.
Definition: gslrandomnumbergenerator.cpp:163
double pickBetaNumber(double a, double b)
Pick a random number from a beta distribution with a and b as values for and respectively.
Definition: gslrandomnumbergenerator.cpp:134
double pickGaussianNumber(double mean, double sigma)
Picks a random number from the gaussian distribution with parameters mean and sigma.
Definition: gslrandomnumbergenerator.cpp:127
double pickWeibull(double lambda, double kappa)
Picks a random number from a Weibull distribution with specified parameters.
Definition: gslrandomnumbergenerator.cpp:141
double pickRandomDouble()
Generate a random floating point number in the interval [0,1].
Definition: gslrandomnumbergenerator.cpp:97