5 #ifndef BPP_NUMERIC_PROB_TRUNCATEDEXPONENTIALDISCRETEDISTRIBUTION_H 6 #define BPP_NUMERIC_PROB_TRUNCATEDEXPONENTIALDISCRETEDISTRIBUTION_H 9 #include "../Constraints.h" 10 #include "../Random/RandomTools.h" 55 lambda_(dist.lambda_),
74 std::string
getName()
const {
return "TruncExponential";}
92 return (1. - exp(-lambda_ * x)) /
cond_;
100 return -log(1. - cond_ * x) /
lambda_;
106 return (1. / lambda_ - exp(-a * lambda_) * (a + 1. / lambda_)) /
cond_;
108 return (1. / lambda_ - exp(-tp_ * lambda_) * (tp_ + 1. / lambda_)) /
cond_;
114 #endif // BPP_NUMERIC_PROB_TRUNCATEDEXPONENTIALDISCRETEDISTRIBUTION_H Partial implementation of the DiscreteDistribution interface.
The constraint interface.
TruncatedExponentialDiscreteDistribution & operator=(const TruncatedExponentialDiscreteDistribution &dist)
~TruncatedExponentialDiscreteDistribution()
double getParameterValue(const std::string &name) const override
Get the value for parameter of name 'name'.
The parameter list object.
AbstractDiscreteDistribution & operator=(const AbstractDiscreteDistribution &adde)
std::shared_ptr< IntervalConstraint > intMinMax_
the interval where the distribution is defined/restricted.
TruncatedExponentialDiscreteDistribution(const TruncatedExponentialDiscreteDistribution &dist)
TruncatedExponentialDiscreteDistribution(size_t n, double lambda=1., double truncationPoint=10)
Build a new truncated exponential discrete distribution.
void fireParameterChanged(const ParameterList ¶meters)
Notify the class when one or several parameters have changed.
std::string getName() const
Get the name of the distribution.
double randC() const
Draw a random number from the continuous version of this distribution, if it exists.
double Expectation(double a) const
Return a primitive function used for the expectation of the continuous version of the distribution...
double pProb(double x) const
Return the cumulative quantile of the continuous version of the distribution, ie .
void restrictToConstraint(const ConstraintInterface &c)
Restricts the distribution to the domain where the constraint is respected, in addition of other pred...
TruncatedExponentialDiscreteDistribution * clone() const
Create a copy of this object and send a pointer to it.
Discretized Truncated (on the right) Exponential distribution, where the probabilities are given the ...
double qProb(double x) const
Return the quantile of the continuous version of the distribution, ie y such that ...