16 #ifndef __OMNETPP_CRANDOM_H    17 #define __OMNETPP_CRANDOM_H    20 #include "cownedobject.h"    40         cRandom(
const char *name=
nullptr, 
cRNG *rng=
nullptr);
    62         virtual double draw() 
const = 0;
    86         cUniform(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
double a=0, 
double b=1) : 
cRandom(name, rng), a(a), b(b) {}
    90         virtual std::string str() 
const override;
    95         void setA(
double a) {this->a = a;}
    96         double getA()
 const {
return a;}
    97         void setB(
double b) {this->b = b;}
    98         double getB()
 const {
return b;}
   103         virtual double draw() 
const override;
   129         virtual std::string str() 
const override;
   134         void setMean(
double mean) {this->mean = mean;}
   135         double getMean()
 const {
return mean;}
   140         virtual double draw() 
const override;
   159         void copy(
const cNormal& other);
   163         cNormal(
cRNG *rng, 
double mean, 
double stddev) : 
cRandom(rng), mean(mean), stddev(stddev) {}
   164         cNormal(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
double mean=0, 
double stddev=1) : 
cRandom(rng), mean(mean), stddev(stddev) {}
   168         virtual std::string str() 
const override;
   173         void setMean(
double mean) {this->mean = mean;}
   174         double getMean()
 const {
return mean;}
   175         void setStddev(
double stddev) {this->stddev = stddev;}
   176         double getStddev()
 const {
return stddev;}
   181         virtual double draw() 
const override;
   205         cTruncNormal(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
double mean=0, 
double stddev=1) : 
cRandom(rng), mean(mean), stddev(stddev) {}
   209         virtual std::string str() 
const override;
   214         void setMean(
double mean) {this->mean = mean;}
   215         double getMean()
 const {
return mean;}
   216         void setStddev(
double stddev) {this->stddev = stddev;}
   217         double getStddev()
 const {
return stddev;}
   222         virtual double draw() 
const override;
   241         void copy(
const cGamma& other);
   245         cGamma(
cRNG *rng, 
double alpha, 
double theta) : 
cRandom(rng), alpha(alpha), theta(theta) {}
   246         cGamma(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
double alpha=1, 
double theta=1) : 
cRandom(rng), alpha(alpha), theta(theta) {}
   250         virtual std::string str() 
const override;
   255         void setAlpha(
double alpha) {this->alpha = alpha;}
   256         double getAlpha()
 const {
return alpha;}
   257         void setTheta(
double theta) {this->theta = theta;}
   258         double getTheta()
 const {
return theta;}
   263         virtual double draw() 
const override;
   282         void copy(
const cBeta& other);
   286         cBeta(
cRNG *rng, 
double alpha1, 
double alpha2) : 
cRandom(rng), alpha1(alpha1), alpha2(alpha2) {}
   287         cBeta(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
double alpha1=1, 
double alpha2=1) : 
cRandom(rng), alpha1(alpha1), alpha2(alpha2) {}
   291         virtual std::string str() 
const override;
   296         void setAlpha1(
double alpha1) {this->alpha1 = alpha1;}
   297         double getAlpha1()
 const {
return alpha1;}
   298         void setAlpha2(
double alpha2) {this->alpha2 = alpha2;}
   299         double getAlpha2()
 const {
return alpha2;}
   304         virtual double draw() 
const override;
   323         void copy(
const cErlang& other);
   328         cErlang(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
unsigned int k=1, 
double mean=1) : 
cRandom(rng), k(k), mean(mean) {}
   332         virtual std::string str() 
const override;
   337         void setK(
unsigned int k) {this->k = k;}
   338         unsigned int getK()
 const {
return k;}
   339         void setMean(
double mean) {this->mean = mean;}
   340         double getMean()
 const {
return mean;}
   345         virtual double draw() 
const override;
   372         virtual std::string str() 
const override;
   377         void setK(
unsigned int k) {this->k = k;}
   378         unsigned int getK()
 const {
return k;}
   383         virtual double draw() 
const override;
   406         cStudentT(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
unsigned int i=1) : 
cRandom(rng), i(i) {}
   410         virtual std::string str() 
const override;
   415         void setI(
unsigned int i) {this->i = i;}
   416         unsigned int getI()
 const {
return i;}
   421         virtual double draw() 
const override;
   440         void copy(
const cCauchy& other);
   445         cCauchy(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
double a=0, 
double b=1) : 
cRandom(rng), a(a), b(b) {}
   449         virtual std::string str() 
const override;
   454         void setA(
double a) {this->a = a;}
   455         double getA()
 const {
return a;}
   456         void setB(
double b) {this->b = b;}
   457         double getB()
 const {
return b;}
   462         virtual double draw() 
const override;
   482         void copy(
const cTriang& other);
   487         cTriang(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
double a=-1, 
double b=0, 
double c=1) : 
cRandom(rng), a(a), b(b), c(c) {}
   491         virtual std::string str() 
const override;
   496         void setA(
double a) {this->a = a;}
   497         double getA()
 const {
return a;}
   498         void setB(
double b) {this->b = b;}
   499         double getB()
 const {
return b;}
   500         void setC(
double c) {this->c = c;}
   501         double getC()
 const {
return c;}
   506         virtual double draw() 
const override;
   530         cWeibull(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
double a=1, 
double b=1) : 
cRandom(rng), a(a), b(b) {}
   534         virtual std::string str() 
const override;
   539         void setA(
double a) {this->a = a;}
   540         double getA()
 const {
return a;}
   541         void setB(
double b) {this->b = b;}
   542         double getB()
 const {
return b;}
   547         virtual double draw() 
const override;
   572         cParetoShifted(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
double a=1, 
double b=1, 
double c=0) : 
cRandom(rng), a(a), b(b), c(c) {}
   576         virtual std::string str() 
const override;
   581         void setA(
double a) {this->a = a;}
   582         double getA()
 const {
return a;}
   583         void setB(
double b) {this->b = b;}
   584         double getB()
 const {
return b;}
   585         void setC(
double c) {this->c = c;}
   586         double getC()
 const {
return c;}
   591         virtual double draw() 
const override;
   621         virtual std::string str() 
const override;
   626         void setA(
int a) {this->a = a;}
   627         int getA()
 const {
return a;}
   628         void setB(
int b) {this->b = b;}
   629         int getB()
 const {
return b;}
   634         virtual double draw() 
const override;
   661         virtual std::string str() 
const override;
   666         void setP(
double p) {this->p = p;}
   667         double getP()
 const {
return p;}
   672         virtual double draw() 
const override;
   696         cBinomial(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
int n=1, 
double p=0.5) : 
cRandom(rng), n(n), p(p) {}
   700         virtual std::string str() 
const override;
   705         void setN(
int n) {this->n = n;}
   706         int getN()
 const {
return n;}
   707         void setP(
double p) {this->p = p;}
   708         double getP()
 const {
return p;}
   713         virtual double draw() 
const override;
   740         virtual std::string str() 
const override;
   745         void setP(
double p) {this->p = p;}
   746         double getP()
 const {
return p;}
   751         virtual double draw() 
const override;
   779         virtual std::string str() 
const override;
   784         void setN(
int n) {this->n = n;}
   785         int getN()
 const {
return n;}
   786         void setP(
double p) {this->p = p;}
   787         double getP()
 const {
return p;}
   792         virtual double draw() 
const override;
   815         cPoisson(
const char *name=
nullptr, 
cRNG *rng=
nullptr, 
double lambda=1) : 
cRandom(rng), lambda(lambda) {}
   819         virtual std::string str() 
const override;
   824         void setLambda(
double lambda) {this->lambda = lambda;}
   825         double getLambda()
 const {
return lambda;}
   830         virtual double draw() 
const override;
 Generates random numbers from the Poisson distribution. 
Definition: crandom.h:805
 
Generates random numbers from the exponential distribution. 
Definition: crandom.h:115
 
Generates random numbers from the Weibull distribution. 
Definition: crandom.h:519
 
Generates random numbers from the chi-square distribution. 
Definition: crandom.h:358
 
virtual cChiSquare * dup() const override
Definition: crandom.h:370
 
virtual cParetoShifted * dup() const override
Definition: crandom.h:574
 
virtual cBeta * dup() const override
Definition: crandom.h:289
 
Generates random numbers from the binomial distribution. 
Definition: crandom.h:685
 
virtual cWeibull * dup() const override
Definition: crandom.h:532
 
virtual cCauchy * dup() const override
Definition: crandom.h:447
 
Abstract interface for random number generator classes. 
Definition: crng.h:49
 
virtual cGeometric * dup() const override
Definition: crandom.h:738
 
Generates random numbers from the normal distribution. 
Definition: crandom.h:153
 
virtual cPoisson * dup() const override
Definition: crandom.h:817
 
Generates random numbers from the truncated normal distribution. 
Definition: crandom.h:194
 
virtual cBernoulli * dup() const override
Definition: crandom.h:659
 
virtual cGamma * dup() const override
Definition: crandom.h:248
 
Generates random numbers from the geometric distribution. 
Definition: crandom.h:726
 
virtual cStudentT * dup() const override
Definition: crandom.h:408
 
virtual cNegBinomial * dup() const override
Definition: crandom.h:777
 
Generates random numbers from the shifted Pareto distribution. 
Definition: crandom.h:560
 
A cObject that keeps track of its owner. It serves as base class for many classes in the OMNeT++ libr...
Definition: cownedobject.h:104
 
Generates random numbers from the beta distribution. 
Definition: crandom.h:276
 
virtual cBinomial * dup() const override
Definition: crandom.h:698
 
virtual cTruncNormal * dup() const override
Definition: crandom.h:207
 
virtual void setRNG(cRNG *rng)
Definition: crandom.h:49
 
Generates random numbers from the Erlang distribution. 
Definition: crandom.h:317
 
Generates random numbers from the gamma distribution. 
Definition: crandom.h:235
 
cRNG * getRNG() const 
Definition: crandom.h:54
 
Generates random numbers from the negative binomial distribution. 
Definition: crandom.h:764
 
virtual cNormal * dup() const override
Definition: crandom.h:166
 
Definition: cabstracthistogram.h:21
 
Abstract interface for random variate generator classes. 
Definition: crandom.h:31
 
Generates random numbers from the Cauchy distribution. 
Definition: crandom.h:434
 
Generates random numbers from Student's T distribution. 
Definition: crandom.h:396
 
Generates random numbers from the triangular distribution. 
Definition: crandom.h:475
 
virtual cExponential * dup() const override
Definition: crandom.h:127
 
virtual cTriang * dup() const override
Definition: crandom.h:489
 
Generates random numbers that are the results of Bernoulli trials. 
Definition: crandom.h:647
 
virtual cErlang * dup() const override
Definition: crandom.h:330