org.apache.commons.math.distribution
Class PoissonDistributionImpl

java.lang.Object
  extended by org.apache.commons.math.distribution.AbstractDistribution
      extended by org.apache.commons.math.distribution.AbstractIntegerDistribution
          extended by org.apache.commons.math.distribution.PoissonDistributionImpl
All Implemented Interfaces:
java.io.Serializable, DiscreteDistribution, Distribution, IntegerDistribution, PoissonDistribution

public class PoissonDistributionImpl
extends AbstractIntegerDistribution
implements PoissonDistribution, java.io.Serializable

Implementation for the PoissonDistribution.

Version:
$Revision: 355770 $ $Date: 2005-12-10 12:48:57 -0700 (Sat, 10 Dec 2005) $
See Also:
Serialized Form

Field Summary
private  double mean
          Holds the Poisson mean for the distribution.
private static long serialVersionUID
          Serializable version identifier
 
Constructor Summary
PoissonDistributionImpl(double p)
          Create a new Poisson distribution with the given the mean.
 
Method Summary
 double cumulativeProbability(int x)
          The probability distribution function P(X <= x) for a Poisson distribution.
protected  int getDomainLowerBound(double p)
          Access the domain value lower bound, based on p, used to bracket a CDF root.
protected  int getDomainUpperBound(double p)
          Access the domain value upper bound, based on p, used to bracket a CDF root.
 double getMean()
          Get the Poisson mean for the distribution.
 double normalApproximateProbability(int x)
          Calculates the Poisson distribution function using a normal approximation.
 double probability(int x)
          The probability mass function P(X = x) for a Poisson distribution.
 void setMean(double p)
          Set the Poisson mean for the distribution.
 
Methods inherited from class org.apache.commons.math.distribution.AbstractIntegerDistribution
cumulativeProbability, cumulativeProbability, inverseCumulativeProbability, probability
 
Methods inherited from class org.apache.commons.math.distribution.AbstractDistribution
cumulativeProbability
 
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
cumulativeProbability, inverseCumulativeProbability
 
Methods inherited from interface org.apache.commons.math.distribution.DiscreteDistribution
probability
 
Methods inherited from interface org.apache.commons.math.distribution.Distribution
cumulativeProbability, cumulativeProbability
 

Field Detail

serialVersionUID

private static final long serialVersionUID
Serializable version identifier

See Also:
Constant Field Values

mean

private double mean
Holds the Poisson mean for the distribution.

Constructor Detail

PoissonDistributionImpl

public PoissonDistributionImpl(double p)
Create a new Poisson distribution with the given the mean. The mean value must be positive; otherwise an IllegalArgument is thrown.

Parameters:
p - the Poisson mean
Throws:
java.lang.IllegalArgumentException - if p ≤ 0
Method Detail

getMean

public double getMean()
Get the Poisson mean for the distribution.

Specified by:
getMean in interface PoissonDistribution
Returns:
the Poisson mean for the distribution.

setMean

public void setMean(double p)
Set the Poisson mean for the distribution. The mean value must be positive; otherwise an IllegalArgument is thrown.

Specified by:
setMean in interface PoissonDistribution
Parameters:
p - the Poisson mean value
Throws:
java.lang.IllegalArgumentException - if p ≤ 0

probability

public double probability(int x)
The probability mass function P(X = x) for a Poisson distribution.

Specified by:
probability in interface IntegerDistribution
Parameters:
x - the value at which the probability density function is evaluated.
Returns:
the value of the probability mass function at x

cumulativeProbability

public double cumulativeProbability(int x)
                             throws MathException
The probability distribution function P(X <= x) for a Poisson distribution.

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

normalApproximateProbability

public double normalApproximateProbability(int x)
                                    throws MathException
Calculates the Poisson distribution function using a normal approximation. The N(mean, sqrt(mean)) distribution is used to approximate the Poisson distribution.

The computation uses "half-correction" -- evaluating the normal distribution function at x + 0.5

Specified by:
normalApproximateProbability in interface PoissonDistribution
Parameters:
x - the upper bound, inclusive
Returns:
the distribution function value calculated using a normal approximation
Throws:
MathException - if an error occurs computing the normal approximation

getDomainLowerBound

protected int getDomainLowerBound(double p)
Access the domain value lower bound, based on p, used to bracket a CDF root. This method is used by AbstractIntegerDistribution.inverseCumulativeProbability(double) to find critical values.

Specified by:
getDomainLowerBound in class AbstractIntegerDistribution
Parameters:
p - the desired probability for the critical value
Returns:
domain lower bound

getDomainUpperBound

protected int getDomainUpperBound(double p)
Access the domain value upper bound, based on p, used to bracket a CDF root. This method is used by AbstractIntegerDistribution.inverseCumulativeProbability(double) to find critical values.

Specified by:
getDomainUpperBound in class AbstractIntegerDistribution
Parameters:
p - the desired probability for the critical value
Returns:
domain upper bound