Marmote Core
The project aims at realizing the prototype of a software environment dedicated to modeling with Markov chains.
uniformDiscreteDistribution.h
1 #ifndef uniformDiscreteDistribution_H
2 #define uniformDiscreteDistribution_H
3 
4 #include "discreteDistribution.h"
5 
11 
12  public:
20 
21 private:
22  int _valInf;
23  int _valSup;
24  int _span;
25  bool _isConstant;
27 public:
28  // accessors to specific variables
34  int valInf();
40  int valSup();
41 
42  public: // probabilistic member functions
46  double mean();
50  double rate();
54  double moment( int order );
58  double variance();
62  double laplace( double s );
66  double dLaplace( double s ); // derivative of the Laplace transform
70  double cdf( double x );
74  double ccdf( double x );
78  bool hasMoment( int order );
79 
83  uniformDiscreteDistribution *rescale( double factor );
91  double sample();
95  void iidSample( int n, double* s );
96 
97  public:
101  std::string toString();
105  void write( FILE *out, int mode );
106 
107 };
108 
109 #endif // uniformDiscreteDistribution_H
bool hasMoment(int order)
test for the existence of moments of any order
Definition: uniformDiscreteDistribution.cpp:112
double moment(int order)
Computing the moments of the distribution.
Definition: uniformDiscreteDistribution.cpp:74
double sample()
drawing a (pseudo)random value according to the distribution.
Definition: uniformDiscreteDistribution.cpp:236
uniformDiscreteDistribution * copy()
copying a distribution. Typically implemented as rescale(1.0).
Definition: uniformDiscreteDistribution.cpp:226
double dLaplace(double s)
computing the derivative of the Laplace transform at real points
Definition: uniformDiscreteDistribution.cpp:140
int valSup()
Read accessor to the upper end of the interval.
double laplace(double s)
computing the Laplace transform of the distribution at real point
Definition: uniformDiscreteDistribution.cpp:120
uniformDiscreteDistribution * rescale(double factor)
rescaling a distribution by some real factor. Not all distributions allow this for any real factor...
Definition: uniformDiscreteDistribution.cpp:208
double ccdf(double x)
computing the complementary cumulative distributon function (or tail) at some real point x...
double rate()
computing the "rate", defined as the inverse of the mean
Definition: uniformDiscreteDistribution.cpp:58
double variance()
Computing the variance of the random variable: the second moment minus the square of the first moment...
uniformDiscreteDistribution(int valInf, int valSup)
The unique constructor for the uniform discrete distribution on some interval [a..b].
Definition: uniformDiscreteDistribution.cpp:28
void write(FILE *out, int mode)
an utility to write the distribution to some file, according to some format.
Definition: uniformDiscreteDistribution.cpp:181
The uniform discrete distribution.
Definition: uniformDiscreteDistribution.h:25
double mean()
computing the mathematical expectation or mean
Definition: uniformDiscreteDistribution.cpp:49
std::string toString()
an utility to convert the distribution into a string.
Definition: uniformDiscreteDistribution.cpp:194
The general discrete distribution with finite support.
Definition: discreteDistribution.h:25
int valInf()
Read accessor to the lower end of the interval.
void iidSample(int n, double *s)
drawing an i.i.d. sample from the distribution. The result is returned in an array (that must have be...
Definition: uniformDiscreteDistribution.cpp:246
double cdf(double x)
computing the cumulative distribution function at some real point x. This is the probability that the...
Definition: uniformDiscreteDistribution.cpp:163