Class ExponentialDistributionImpl

• All Implemented Interfaces:
`java.io.Serializable`, `ContinuousDistribution`, `Distribution`, `ExponentialDistribution`, `HasDensity<java.lang.Double>`

```public class ExponentialDistributionImpl
extends AbstractContinuousDistribution
implements ExponentialDistribution, java.io.Serializable```
The default implementation of `ExponentialDistribution`.
Serialized Form
• Field Summary

Fields
Modifier and Type Field Description
`static double` `DEFAULT_INVERSE_ABSOLUTE_ACCURACY`
Default inverse cumulative probability accuracy
• Constructor Summary

Constructors
Constructor Description
`ExponentialDistributionImpl​(double mean)`
Create a exponential distribution with the given mean.
```ExponentialDistributionImpl​(double mean, double inverseCumAccuracy)```
Create a exponential distribution with the given mean.
• Method Summary

All Methods
Modifier and Type Method Description
`double` `cumulativeProbability​(double x)`
For this distribution, X, this method returns P(X < x).
`double` `density​(double x)`
Return the probability density for a particular point.
`double` `density​(java.lang.Double x)`
Deprecated.
- use density(double)
`double` `getMean()`
Access the mean.
`double` `getNumericalMean()`
Returns the mean of the distribution.
`double` `getNumericalVariance()`
Returns the variance of the distribution.
`double` `getSupportLowerBound()`
Returns the lower bound of the support for the distribution.
`double` `getSupportUpperBound()`
Returns the upper bound of the support for the distribution.
`double` `inverseCumulativeProbability​(double p)`
For this distribution, X, this method returns the critical point x, such that P(X < x) = `p`.
`double` `sample()`
Generates a random value sampled from this distribution.
`void` `setMean​(double mean)`
Deprecated.
as of 2.1 (class will become immutable in 3.0)
• Methods inherited from class org.apache.commons.math.distribution.AbstractContinuousDistribution

`reseedRandomGenerator, sample`
• Methods inherited from class org.apache.commons.math.distribution.AbstractDistribution

`cumulativeProbability`
• Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• Methods inherited from interface org.apache.commons.math.distribution.Distribution

`cumulativeProbability`
• Field Detail

• DEFAULT_INVERSE_ABSOLUTE_ACCURACY

`public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY`
Default inverse cumulative probability accuracy
Since:
2.1
Constant Field Values
• Constructor Detail

• ExponentialDistributionImpl

`public ExponentialDistributionImpl​(double mean)`
Create a exponential distribution with the given mean.
Parameters:
`mean` - mean of this distribution.
• ExponentialDistributionImpl

```public ExponentialDistributionImpl​(double mean,
double inverseCumAccuracy)```
Create a exponential distribution with the given mean.
Parameters:
`mean` - mean of this distribution.
`inverseCumAccuracy` - the maximum absolute error in inverse cumulative probability estimates (defaults to `DEFAULT_INVERSE_ABSOLUTE_ACCURACY`)
Since:
2.1
• Method Detail

• setMean

```@Deprecated
public void setMean​(double mean)```
Deprecated.
as of 2.1 (class will become immutable in 3.0)
Modify the mean.
Specified by:
`setMean` in interface `ExponentialDistribution`
Parameters:
`mean` - the new mean.
Throws:
`java.lang.IllegalArgumentException` - if `mean` is not positive.
• getMean

`public double getMean()`
Access the mean.
Specified by:
`getMean` in interface `ExponentialDistribution`
Returns:
the mean.
• density

```@Deprecated
public double density​(java.lang.Double x)```
Deprecated.
- use density(double)
Return the probability density for a particular point.
Specified by:
`density` in interface `ExponentialDistribution`
Specified by:
`density` in interface `HasDensity<java.lang.Double>`
Parameters:
`x` - The point at which the density should be computed.
Returns:
The pdf at point x.
• density

`public double density​(double x)`
Return the probability density for a particular point.
Overrides:
`density` in class `AbstractContinuousDistribution`
Parameters:
`x` - The point at which the density should be computed.
Returns:
The pdf at point x.
Since:
2.1
• cumulativeProbability

```public double cumulativeProbability​(double x)
throws MathException```
For this distribution, X, this method returns P(X < x). The implementation of this method is based on:
Specified by:
`cumulativeProbability` in interface `Distribution`
Parameters:
`x` - the value at which the CDF is evaluated.
Returns:
CDF for this distribution.
Throws:
`MathException` - if the cumulative probability can not be computed due to convergence or other numerical errors.
• inverseCumulativeProbability

```public double inverseCumulativeProbability​(double p)
throws MathException```
For this distribution, X, this method returns the critical point x, such that P(X < x) = `p`.

Returns 0 for p=0 and `Double.POSITIVE_INFINITY` for p=1.

Specified by:
`inverseCumulativeProbability` in interface `ContinuousDistribution`
Overrides:
`inverseCumulativeProbability` in class `AbstractContinuousDistribution`
Parameters:
`p` - the desired probability
Returns:
x, such that P(X < x) = `p`
Throws:
`MathException` - if the inverse cumulative probability can not be computed due to convergence or other numerical errors.
`java.lang.IllegalArgumentException` - if p < 0 or p > 1.
• sample

```public double sample()
throws MathException```
Generates a random value sampled from this distribution.

Algorithm Description: Uses the Inversion Method to generate exponentially distributed random values from uniform deviates.

Overrides:
`sample` in class `AbstractContinuousDistribution`
Returns:
random value
Throws:
`MathException` - if an error occurs generating the random value
Since:
2.2
• getSupportLowerBound

`public double getSupportLowerBound()`
Returns the lower bound of the support for the distribution. The lower bound of the support is always 0, regardless of the mean.
Returns:
lower bound of the support (always 0)
Since:
2.2
• getSupportUpperBound

`public double getSupportUpperBound()`
Returns the upper bound of the support for the distribution. The upper bound of the support is always positive infinity, regardless of the mean.
Returns:
upper bound of the support (always Double.POSITIVE_INFINITY)
Since:
2.2
• getNumericalMean

`public double getNumericalMean()`
Returns the mean of the distribution. For mean parameter `k`, the mean is `k`
Returns:
the mean
Since:
2.2
• getNumericalVariance

`public double getNumericalVariance()`
Returns the variance of the distribution. For mean parameter `k`, the variance is `k^2`
Returns:
the variance
Since:
2.2