Class AbstractIntegerDistribution
java.lang.Object
org.hipparchus.distribution.discrete.AbstractIntegerDistribution
- All Implemented Interfaces:
 Serializable,IntegerDistribution
- Direct Known Subclasses:
 BinomialDistribution,EnumeratedIntegerDistribution,GeometricDistribution,HypergeometricDistribution,PascalDistribution,PoissonDistribution,UniformIntegerDistribution,ZipfDistribution
public abstract class AbstractIntegerDistribution
extends Object
implements IntegerDistribution, Serializable
Base class for integer-valued discrete distributions.
 
Default implementations are provided for some of the methods that do not vary from distribution to distribution.
- See Also:
 
- 
Constructor Summary
Constructors - 
Method Summary
Modifier and TypeMethodDescriptionintinverseCumulativeProbability(double p) Computes the quantile function of this distribution.doublelogProbability(int x) For a random variableXwhose values are distributed according to this distribution, this method returnslog(P(X = x)), wherelogis the natural logarithm.doubleprobability(int x0, int x1) For a random variableXwhose values are distributed according to this distribution, this method returnsP(x0 < X <= x1).protected intsolveInverseCumulativeProbability(double p, int lower, int upper) This is a utility function used byinverseCumulativeProbability(double).Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.hipparchus.distribution.IntegerDistribution
cumulativeProbability, getNumericalMean, getNumericalVariance, getSupportLowerBound, getSupportUpperBound, isSupportConnected, probability 
- 
Constructor Details
 - 
Method Details
- 
probability
For a random variableXwhose values are distributed according to this distribution, this method returnsP(x0 < X <= x1). The default implementation uses the identityP(x0 < X <= x1) = P(X <= x1) - P(X <= x0)- Specified by:
 probabilityin interfaceIntegerDistribution- Parameters:
 x0- the exclusive lower boundx1- the inclusive upper bound- Returns:
 - the probability that a random variable with this distribution
 will take a value between 
x0andx1, excluding the lower and including the upper endpoint - Throws:
 MathIllegalArgumentException- ifx0 > x1
 - 
inverseCumulativeProbability
Computes the quantile function of this distribution. For a random variableXdistributed according to this distribution, the returned value isinf{x in Z | P(X<=x) >= p}for0 < p <= 1,inf{x in Z | P(X<=x) > 0}forp = 0.
int, thenInteger.MIN_VALUEorInteger.MAX_VALUEis returned. The default implementation returnsIntegerDistribution.getSupportLowerBound()forp = 0,IntegerDistribution.getSupportUpperBound()forp = 1, andsolveInverseCumulativeProbability(double, int, int)for0 < p < 1.
- Specified by:
 inverseCumulativeProbabilityin interfaceIntegerDistribution- Parameters:
 p- the cumulative probability- Returns:
 - the smallest 
p-quantile of this distribution (largest 0-quantile forp = 0) - Throws:
 MathIllegalArgumentException- ifp < 0orp > 1
 - 
solveInverseCumulativeProbability
protected int solveInverseCumulativeProbability(double p, int lower, int upper) This is a utility function used byinverseCumulativeProbability(double). It assumes0 < p < 1and that the inverse cumulative probability lies in the bracket(lower, upper]. The implementation does simple bisection to find the smallestp-quantileinf{x in Z | P(X<=x) >= p}.- Parameters:
 p- the cumulative probabilitylower- a value satisfyingcumulativeProbability(lower) < pupper- a value satisfyingp <= cumulativeProbability(upper)- Returns:
 - the smallest 
p-quantile of this distribution 
 - 
logProbability
public double logProbability(int x) For a random variableXwhose values are distributed according to this distribution, this method returnslog(P(X = x)), wherelogis the natural logarithm. In other words, this method represents the logarithm of the probability mass function (PMF) for the distribution. Note that due to the floating point precision and under/overflow issues, this method will for some distributions be more precise and faster than computing the logarithm ofIntegerDistribution.probability(int).The default implementation simply computes the logarithm of
probability(x).- Specified by:
 logProbabilityin interfaceIntegerDistribution- Parameters:
 x- the point at which the PMF is evaluated- Returns:
 - the logarithm of the value of the probability mass function at 
x 
 
 -