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  unsigned long getSeed() const { return m_seed; }
30 
32  double pickRandomDouble();
33 
35  int pickRandomInt(int min, int max);
36 
39  unsigned int pickPoissonNumber(double lambda);
40 
43  unsigned int pickBinomialNumber(double p, unsigned int n);
44 
47  double pickGaussianNumber(double mean, double sigma);
48 
51  double pickBetaNumber(double a, double b);
52 
54  double pickWeibull(double lambda, double kappa);
55 
58  double pickWeibull(double lambda, double kappa, double ageMin);
59 
62  double pickLogNorm(double zeta, double sigma);
63 
66  double pickGamma(double a, double b);
67 
70  std::pair<double,double> pickBivariateGaussian(double muX, double muY, double sigmaX, double sigmaY, double rho);
71 private:
72  gsl_rng *m_pRng;
73  unsigned long m_seed;
74 };
75 
76 #endif // GSLRANDOMNUMBERGENERATOR_H
This class allows you to generate random numbers, and uses the GNU Scientific Library for this.
Definition: gslrandomnumbergenerator.h:17
double pickGaussianNumber(double mean, double sigma)
Picks a random number from the gaussian distribution with parameters mean and sigma.
Definition: gslrandomnumbergenerator.cpp:126
double pickWeibull(double lambda, double kappa)
Picks a random number from a Weibull distribution with specified parameters.
Definition: gslrandomnumbergenerator.cpp:140
unsigned long getSeed() const
Returns the seed used for the random number generator.
Definition: gslrandomnumbergenerator.h:29
unsigned int pickBinomialNumber(double p, unsigned int n)
Pick a random number from the binomial distribution, for n trials with a probability of success p for...
Definition: gslrandomnumbergenerator.cpp:185
double pickRandomDouble()
Generate a random floating point number in the interval [0,1].
Definition: gslrandomnumbergenerator.cpp:96
unsigned int pickPoissonNumber(double lambda)
Chooses a random number according to the Poisson distribution with parameter lambda.
Definition: gslrandomnumbergenerator.cpp:121
double pickLogNorm(double zeta, double sigma)
Picks a random number from a log-normal distribution with parameters zeta and sigma.
Definition: gslrandomnumbergenerator.cpp:162
GslRandomNumberGenerator()
Initialize the random number generator with a random seed, A specific seed can still be forced by set...
Definition: gslrandomnumbergenerator.cpp:20
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:169
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:176
int pickRandomInt(int min, int max)
Chooses a random number from min to max (both are included).
Definition: gslrandomnumbergenerator.cpp:103
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:133