Marmote Core
The project aims at realizing the prototype of a software environment dedicated to modeling with Markov chains.
|
The uniform discrete distribution. More...
#include <uniformDiscreteDistribution.h>
Public Member Functions | |
uniformDiscreteDistribution (int valInf, int valSup) | |
The unique constructor for the uniform discrete distribution on some interval [a..b]. More... | |
int | valInf () |
Read accessor to the lower end of the interval. More... | |
int | valSup () |
Read accessor to the upper end of the interval. More... | |
double | getProba (double value) |
Computes the probability of a particular value. The tolerance VALUE_TOLERANCE is applied to match values. More... | |
double | mean () |
computing the mathematical expectation or mean More... | |
double | rate () |
computing the "rate", defined as the inverse of the mean More... | |
double | moment (int order) |
Computing the moments of the distribution. More... | |
double | variance () |
Computing the variance of the random variable: the second moment minus the square of the first moment. Variance is the square of the coefficient of variation. The Distribution class offers a default implementation. More... | |
double | laplace (double s) |
computing the Laplace transform of the distribution at real point More... | |
double | dLaplace (double s) |
computing the derivative of the Laplace transform at real points More... | |
double | cdf (double x) |
computing the cumulative distribution function at some real point x. This is the probability that the random variable is less or equal to x. More... | |
double | ccdf (double x) |
computing the complementary cumulative distributon function (or tail) at some real point x. This is the probability that the random variable is strictly larger than x. The Distribution class offers a default implementation. More... | |
bool | hasMoment (int order) |
test for the existence of moments of any order More... | |
uniformDiscreteDistribution * | rescale (double factor) |
rescaling a distribution by some real factor. Not all distributions allow this for any real factor. If the operation fails, or if the factor is 1.0, a copy of the distribution should be returned (not by using the copy() function). More... | |
uniformDiscreteDistribution * | copy () |
copying a distribution. Typically implemented as rescale(1.0). More... | |
double | sample () |
drawing a (pseudo)random value according to the distribution. More... | |
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 been already allocated) passed as a parameter. The Distribution class offers the default implementation with repeated call to sample(). More... | |
std::string | toString () |
an utility to convert the distribution into a string. More... | |
void | write (FILE *out, int mode) |
an utility to write the distribution to some file, according to some format. More... | |
![]() | |
discreteDistribution (int sz, double *vals, double *probas) | |
Constructor for a general discrete distribution from arrays. The arrays are ***copied***, not taken as pointer. The mean is calculated at creation. More... | |
discreteDistribution (int sz, char *name) | |
Constructor for a general discrete distribution from a file. The file is assumed to contain only the probas. The values are arbitrarily chosen between 0 and sz-1. The mean is calculated at creation. More... | |
~discreteDistribution () | |
Destructor for a general discrete distribution. The convention is that internal arrays for values and probas are freed at this moment. If they are useful for something else, they sould be copied. More... | |
double | getProbaByIndex (int i) |
Read accessor for the elements of the probas array. This is a pseudo-accessor since it performs additional checks. More... | |
double | getProba (double value) |
Computes the probability of a particular value. The tolerance VALUE_TOLERANCE is applied to match values. More... | |
double | getValue (int i) |
Read accessor for the values. This is a pseudo-accessor since it performs additional checks. More... | |
int | nbVals () |
Read accessor to the number of values in the distribution. More... | |
bool | setProba (int i, double v) |
Write accessor for the probas. This is a pseudo-accessor since it performs additional checks. More... | |
double | distanceL2 (discreteDistribution *d) |
Computes the L2 distance between two distributions. In case of incompatible or infinite sizes, a negative number is returned. More... | |
double | distanceL1 (discreteDistribution *d) |
Computes the L1 distance between this distribution and another one. In case of incompatible or infinite sizes, a negative number is returned. More... | |
double | distanceLinfinity (discreteDistribution *d) |
Computes the L-infinity distance between two distributions. In case of incompatible or infinite sizes, a negative number is returned. More... | |
![]() | |
virtual | ~Distribution () |
Standard destructor. More... | |
std::string | name () |
Read accessor to the type name of the distribution. More... | |
double | variance () |
Computing the variance of the random variable: the second moment minus the square of the first moment. Variance is the square of the coefficient of variation. The Distribution class offers a default implementation. More... | |
double | ccdf (double x) |
computing the complementary cumulative distributon function (or tail) at some real point x. This is the probability that the random variable is strictly larger than x. The Distribution class offers a default implementation. More... | |
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 been already allocated) passed as a parameter. The Distribution class offers the default implementation with repeated call to sample(). More... | |
virtual double | distanceL1 (Distribution *d) |
Computing generally the L1 distance between distributions. More... | |
virtual bool | hasProperty (std::string pro) |
Property test function. Current properties are: More... | |
void | fprint () |
write on stdout with NORMAL_PRINT_MODE More... | |
Additional Inherited Members | |
![]() | |
static double | u_0_1 (void) |
static double | exponential (double mean) |
![]() | |
discreteDistribution (int sz) | |
Constructor for a general discrete distribution from its size. Arrays are created to this size but not initialized. DANGEROUS to use since methods cannot check whether these arrays are correct or not. Use reserved to sub-types such as diracDistribution. More... | |
![]() | |
int | _nbVals |
double * | _values |
double * | _probas |
![]() | |
std::string | _name |
double | _mean |
![]() | |
static const double | VALUE_TOLERANCE = 1.0e-8 |
The uniform discrete distribution.
uniformDiscreteDistribution::uniformDiscreteDistribution | ( | int | valInf, |
int | valSup | ||
) |
The unique constructor for the uniform discrete distribution on some interval [a..b].
valInf | the lower bound (a) |
valSup | the upper bound (b) |
Constructor for a discrete uniform distribution on [a..b] The mean is calculated at creation.
valInf | the value of a |
valSup | the value of b |
double uniformDiscreteDistribution::ccdf | ( | double | x | ) |
computing the complementary cumulative distributon function (or tail) at some real point x. This is the probability that the random variable is strictly larger than x. The Distribution class offers a default implementation.
x | the value at which to compute the ccdf |
|
virtual |
computing the cumulative distribution function at some real point x. This is the probability that the random variable is less or equal to x.
x | the value at which to compute the cdf |
Computation of the cumulative density function at some real point x
Reimplemented from discreteDistribution.
|
virtual |
copying a distribution. Typically implemented as rescale(1.0).
Copying the law
Reimplemented from discreteDistribution.
|
virtual |
computing the derivative of the Laplace transform at real points
s | the value at which to compute |
Computation of the derivative of the Laplace transform at some real point s
Reimplemented from discreteDistribution.
double uniformDiscreteDistribution::getProba | ( | double | value | ) |
Computes the probability of a particular value. The tolerance VALUE_TOLERANCE is applied to match values.
value | the value at which the proba is computed |
|
virtual |
test for the existence of moments of any order
order | the order of the moment to be tested |
These distributions have moments of all orders.
Reimplemented from discreteDistribution.
void uniformDiscreteDistribution::iidSample | ( | int | n, |
double * | s | ||
) |
drawing an i.i.d. sample from the distribution. The result is returned in an array (that must have been already allocated) passed as a parameter. The Distribution class offers the default implementation with repeated call to sample().
n | the number of values to sample |
s | an array to be filled with the sample |
Iid samples from the law in a table
|
virtual |
computing the Laplace transform of the distribution at real point
s | the value at which to compute |
Computation of the Laplace transform at some real point s
Reimplemented from discreteDistribution.
|
virtual |
computing the mathematical expectation or mean
Returns the value since the mean is pre-computed at creation time.
Reimplemented from discreteDistribution.
|
virtual |
Computing the moments of the distribution.
order | the order of the moment to be computed |
Reimplemented from discreteDistribution.
|
virtual |
computing the "rate", defined as the inverse of the mean
Calculation of the rate, which is the inverse of the mean
Reimplemented from discreteDistribution.
|
virtual |
rescaling a distribution by some real factor. Not all distributions allow this for any real factor. If the operation fails, or if the factor is 1.0, a copy of the distribution should be returned (not by using the copy() function).
factor | the real factor to be used |
Rescaling the law X by some real factor f
Reimplemented from discreteDistribution.
|
virtual |
drawing a (pseudo)random value according to the distribution.
Sampling from the law
Reimplemented from discreteDistribution.
|
virtual |
an utility to convert the distribution into a string.
Printing a representation of the law into a string
Reimplemented from discreteDistribution.
int uniformDiscreteDistribution::valInf | ( | ) |
Read accessor to the lower end of the interval.
int uniformDiscreteDistribution::valSup | ( | ) |
Read accessor to the upper end of the interval.
double uniformDiscreteDistribution::variance | ( | ) |
Computing the variance of the random variable: the second moment minus the square of the first moment. Variance is the square of the coefficient of variation. The Distribution class offers a default implementation.
|
virtual |
an utility to write the distribution to some file, according to some format.
out | the file descriptor of the file |
mode | a code for the format to be used |
Printing a representation of the law
Reimplemented from discreteDistribution.