5 #ifndef BPP_NUMERIC_PROB_EXPONENTIALDISCRETEDISTRIBUTION_H 6 #define BPP_NUMERIC_PROB_EXPONENTIALDISCRETEDISTRIBUTION_H 9 #include "../Constraints.h" 10 #include "../Random/RandomTools.h" 55 std::string
getName()
const {
return "Exponential";}
70 return 1. - exp(-lambda_ * x);
80 return 1. / lambda_ - exp(-a * lambda_) * (a + 1. /
lambda_);
84 #endif // BPP_NUMERIC_PROB_EXPONENTIALDISCRETEDISTRIBUTION_H Partial implementation of the DiscreteDistribution interface.
ExponentialDiscreteDistribution * clone() const
Create a copy of this object and send a pointer to it.
std::string getName() const
Get the name of the distribution.
Discretized Exponential distribution.
double getParameterValue(const std::string &name) const override
Get the value for parameter of name 'name'.
The parameter list object.
double Expectation(double a) const
Return a primitive function used for the expectation of the continuous version of the distribution...
double randC() const
Draw a random number from the continuous version of this distribution, if it exists.
AbstractDiscreteDistribution & operator=(const AbstractDiscreteDistribution &adde)
double pProb(double x) const
Return the cumulative quantile of the continuous version of the distribution, ie .
void fireParameterChanged(const ParameterList ¶meters)
Notify the class when one or several parameters have changed.
std::shared_ptr< IntervalConstraint > intMinMax_
the interval where the distribution is defined/restricted.
ExponentialDiscreteDistribution(const ExponentialDiscreteDistribution &dist)
ExponentialDiscreteDistribution & operator=(const ExponentialDiscreteDistribution &dist)
~ExponentialDiscreteDistribution()
double qProb(double x) const
Return the quantile of the continuous version of the distribution, ie y such that ...
ExponentialDiscreteDistribution(size_t n, double lambda=1.)
Build a new discretized exponential distribution.