public class ExponentialDistributionImpl extends AbstractContinuousDistribution implements ExponentialDistribution, java.io.Serializable
ExponentialDistribution
.Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_INVERSE_ABSOLUTE_ACCURACY
Default inverse cumulative probability accuracy
|
private double |
mean
The mean of this distribution.
|
private static long |
serialVersionUID
Serializable version identifier
|
private double |
solverAbsoluteAccuracy
Inverse cumulative probability accuracy
|
randomData
Constructor and 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.
|
Modifier and Type | Method and 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)
|
protected double |
getDomainLowerBound(double p)
Access the domain value lower bound, based on
p , used to
bracket a CDF root. |
protected double |
getDomainUpperBound(double p)
Access the domain value upper bound, based on
p , used to
bracket a CDF root. |
protected double |
getInitialDomain(double p)
Access the initial domain value, based on
p , used to
bracket a CDF root. |
double |
getMean()
Access the mean.
|
double |
getNumericalMean()
Returns the mean of the distribution.
|
double |
getNumericalVariance()
Returns the variance of the distribution.
|
protected double |
getSolverAbsoluteAccuracy()
Return the absolute accuracy setting of the solver used to estimate
inverse cumulative probabilities.
|
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)
|
private void |
setMeanInternal(double newMean)
Modify the mean.
|
reseedRandomGenerator, sample
cumulativeProbability
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
cumulativeProbability
public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY
private static final long serialVersionUID
private double mean
private final double solverAbsoluteAccuracy
public ExponentialDistributionImpl(double mean)
mean
- mean of this distribution.public ExponentialDistributionImpl(double mean, double inverseCumAccuracy)
mean
- mean of this distribution.inverseCumAccuracy
- the maximum absolute error in inverse cumulative probability estimates
(defaults to DEFAULT_INVERSE_ABSOLUTE_ACCURACY
)@Deprecated public void setMean(double mean)
setMean
in interface ExponentialDistribution
mean
- the new mean.java.lang.IllegalArgumentException
- if mean
is not positive.private void setMeanInternal(double newMean)
newMean
- the new mean.java.lang.IllegalArgumentException
- if newMean
is not positive.public double getMean()
getMean
in interface ExponentialDistribution
@Deprecated public double density(java.lang.Double x)
density
in interface ExponentialDistribution
density
in interface HasDensity<java.lang.Double>
x
- The point at which the density should be computed.public double density(double x)
density
in class AbstractContinuousDistribution
x
- The point at which the density should be computed.public double cumulativeProbability(double x) throws MathException
cumulativeProbability
in interface Distribution
x
- the value at which the CDF is evaluated.MathException
- if the cumulative probability can not be
computed due to convergence or other numerical errors.public double inverseCumulativeProbability(double p) throws MathException
p
.
Returns 0 for p=0 and Double.POSITIVE_INFINITY
for p=1.
inverseCumulativeProbability
in interface ContinuousDistribution
inverseCumulativeProbability
in class AbstractContinuousDistribution
p
- the desired probabilityp
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.public double sample() throws MathException
Algorithm Description: Uses the Inversion Method to generate exponentially distributed random values from uniform deviates.
sample
in class AbstractContinuousDistribution
MathException
- if an error occurs generating the random valueprotected double getDomainLowerBound(double p)
p
, used to
bracket a CDF root.getDomainLowerBound
in class AbstractContinuousDistribution
p
- the desired probability for the critical valuep
protected double getDomainUpperBound(double p)
p
, used to
bracket a CDF root.getDomainUpperBound
in class AbstractContinuousDistribution
p
- the desired probability for the critical valuep
protected double getInitialDomain(double p)
p
, used to
bracket a CDF root.getInitialDomain
in class AbstractContinuousDistribution
p
- the desired probability for the critical valueprotected double getSolverAbsoluteAccuracy()
getSolverAbsoluteAccuracy
in class AbstractContinuousDistribution
public double getSupportLowerBound()
public double getSupportUpperBound()
public double getNumericalMean()
k
, the mean is
k
public double getNumericalVariance()
k
, the variance is
k^2
Copyright (c) 2003-2016 Apache Software Foundation