## org.apache.commons.math.distribution
Class AbstractIntegerDistribution

    java.lang.Object
      org.apache.commons.math.distribution.AbstractDistribution
          org.apache.commons.math.distribution.AbstractIntegerDistribution

All Implemented Interfaces:
  java.io.Serializable, DiscreteDistribution, Distribution, IntegerDistribution

Direct Known Subclasses:
  BinomialDistributionImpl, HypergeometricDistributionImpl, PascalDistributionImpl, PoissonDistributionImpl, ZipfDistributionImpl

    public abstract class AbstractIntegerDistribution

extends AbstractDistribution
implements IntegerDistribution, java.io.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.

Version:
  $Revision: 772119 $ $Date: 2009-05-06 05:43:28 -0400 (Wed, 06 May 2009) $
See Also:
  Serialized Form

Field Summary
`private static long` `serialVersionUID` Serializable version identifier

Constructor Summary
`protected` `AbstractIntegerDistribution()` Default constructor.

Method Summary
`double` `cumulativeProbability(double x)` For a random variable X whose values are distributed according to this distribution, this method returns P(X ≤ x).
`double` `cumulativeProbability(double x0, double x1)` For a random variable X whose values are distributed according to this distribution, this method returns P(x0 ≤ X ≤ x1).
`abstract double` `cumulativeProbability(int x)` For a random variable X whose values are distributed according to this distribution, this method returns P(X ≤ x).
`double` `cumulativeProbability(int x0, int x1)` For a random variable X whose values are distributed according to this distribution, this method returns P(x0 ≤ X ≤ x1).
`protected abstract int` `getDomainLowerBound(double p)` Access the domain value lower bound, based on `p`, used to bracket a PDF root.
`protected abstract int` `getDomainUpperBound(double p)` Access the domain value upper bound, based on `p`, used to bracket a PDF root.
`int` `inverseCumulativeProbability(double p)` For a random variable X whose values are distributed according to this distribution, this method returns the largest x, such that P(X ≤ x) ≤ `p`.
`double` `probability(double x)` For a random variable X whose values are distributed according to this distribution, this method returns P(X = x).

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.commons.math.distribution.IntegerDistribution
`probability`

Field Detail

### serialVersionUID

    private static final long serialVersionUID

  Serializable version identifier

  See Also:
    Constant Field Values

Constructor Detail

### AbstractIntegerDistribution

    protected AbstractIntegerDistribution()

  Default constructor.

Method Detail

### cumulativeProbability

    public double cumulativeProbability(double x)
                                 throws MathException

  For a random variable X whose values are distributed according to this distribution, this method returns P(X ≤ x). In other words, this method represents the (cumulative) distribution function, or CDF, for this distribution.

  If `x` does not represent an integer value, the CDF is evaluated at the greatest integer less than x.

  Specified by:
    `cumulativeProbability` in interface `Distribution`
  Parameters:
    `x` - the value at which the distribution function is evaluated.
  Returns:
    cumulative probability that a random variable with this distribution takes a value less than or equal to `x`
  Throws:
    `MathException` - if the cumulative probability can not be computed due to convergence or other numerical errors.

### cumulativeProbability

    public double cumulativeProbability(double x0,
                                        double x1)
                                 throws MathException

  For a random variable X whose values are distributed according to this distribution, this method returns P(x0 ≤ X ≤ x1).

  Specified by:
    `cumulativeProbability` in interface `Distribution`
  Overrides:
    `cumulativeProbability` in class `AbstractDistribution`
  Parameters:
    `x0` - the (inclusive) lower bound
    `x1` - the (inclusive) upper bound
  Returns:
    the probability that a random variable with this distribution will take a value between `x0` and `x1`, including the endpoints.
  Throws:
    `MathException` - if the cumulative probability can not be computed due to convergence or other numerical errors.
    `java.lang.IllegalArgumentException` - if `x0 > x1`

### cumulativeProbability

    public abstract double cumulativeProbability(int x)
                                          throws MathException

  For a random variable X whose values are distributed according to this distribution, this method returns P(X ≤ x). In other words, this method represents the probability distribution function, or PDF, for this distribution.

  Specified by:
    `cumulativeProbability` in interface `IntegerDistribution`
  Parameters:
    `x` - the value at which the PDF is evaluated.
  Returns:
    PDF for this distribution.
  Throws:
    `MathException` - if the cumulative probability can not be computed due to convergence or other numerical errors.

### probability

    public double probability(double x)

  For a random variable X whose values are distributed according to this distribution, this method returns P(X = x). In other words, this method represents the probability mass function, or PMF, for the distribution.

  If `x` does not represent an integer value, 0 is returned.

  Specified by:
    `probability` in interface `DiscreteDistribution`
  Parameters:
    `x` - the value at which the probability density function is evaluated
  Returns:
    the value of the probability density function at x

### cumulativeProbability

    public double cumulativeProbability(int x0,
                                        int x1)
                                 throws MathException

  For a random variable X whose values are distributed according to this distribution, this method returns P(x0 ≤ X ≤ x1).

  Specified by:
    `cumulativeProbability` in interface `IntegerDistribution`
  Parameters:
    `x0` - the inclusive, lower bound
    `x1` - the inclusive, upper bound
  Returns:
    the cumulative probability.
  Throws:
    `MathException` - if the cumulative probability can not be computed due to convergence or other numerical errors.
    `java.lang.IllegalArgumentException` - if x0 > x1

### inverseCumulativeProbability

    public int inverseCumulativeProbability(double p)
                                     throws MathException

  For a random variable X whose values are distributed according to this distribution, this method returns the largest x, such that P(X ≤ x) ≤ `p`.

  Specified by:
    `inverseCumulativeProbability` in interface `IntegerDistribution`
  Parameters:
    `p` - the desired probability
  Returns:
    the largest 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

### getDomainLowerBound

    protected abstract int getDomainLowerBound(double p)

  Access the domain value lower bound, based on `p`, used to bracket a PDF root. This method is used by `inverseCumulativeProbability(double)` to find critical values.

  Parameters:
    `p` - the desired probability for the critical value
  Returns:
    domain value lower bound, i.e. P(X < lower bound) < `p`

### getDomainUpperBound

    protected abstract int getDomainUpperBound(double p)

  Access the domain value upper bound, based on `p`, used to bracket a PDF root. This method is used by `inverseCumulativeProbability(double)` to find critical values.

  Parameters:
    `p` - the desired probability for the critical value
  Returns:
    domain value upper bound, i.e. P(X < upper bound) > `p`

Copyright (c) 2003-2010 Apache Software Foundation