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

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

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

    public class PascalDistributionImpl

extends AbstractIntegerDistribution
implements PascalDistribution, java.io.Serializable

The default implementation of `PascalDistribution`.

Since:
  1.2
Version:
  $Revision: 920852 $ $Date: 2010-03-09 07:53:44 -0500 (Tue, 09 Mar 2010) $
See Also:
  Serialized Form

Field Summary
`private int` `numberOfSuccesses` The number of successes
`private double` `probabilityOfSuccess` The probability of success
`private static long` `serialVersionUID` Serializable version identifier

Constructor Summary
`PascalDistributionImpl(int r, double p)` Create a binomial distribution with the given number of trials and probability of success.

Method Summary
`double` `cumulativeProbability(int x)` For this distribution, X, this method returns P(X ≤ x).
`protected int` `getDomainLowerBound(double p)` Access the domain value lower bound, based on `p`, used to bracket a PDF root.
`protected int` `getDomainUpperBound(double p)` Access the domain value upper bound, based on `p`, used to bracket a PDF root.
`int` `getNumberOfSuccesses()` Access the number of successes for this distribution.
`double` `getProbabilityOfSuccess()` Access the probability of success for this distribution.
`int` `inverseCumulativeProbability(double p)` For this distribution, X, this method returns the largest x, such that P(X ≤ x) ≤ `p`.
`double` `probability(int x)` For this distribution, X, this method returns P(X = x).
`void` `setNumberOfSuccesses(int successes)` Deprecated. as of 2.1 (class will become immutable in 3.0)
`private void` `setNumberOfSuccessesInternal(int successes)` Change the number of successes for this distribution.
`void` `setProbabilityOfSuccess(double p)` Deprecated. as of 2.1 (class will become immutable in 3.0)
`private void` `setProbabilityOfSuccessInternal(double p)` Change the probability of success for this distribution.

Methods inherited from class org.apache.commons.math.distribution.AbstractIntegerDistribution
`cumulativeProbability, cumulativeProbability, cumulativeProbability, probability`

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`

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

### numberOfSuccesses

    private int numberOfSuccesses

  The number of successes

### probabilityOfSuccess

    private double probabilityOfSuccess

  The probability of success

Constructor Detail

### PascalDistributionImpl

    public PascalDistributionImpl(int r,
                                  double p)

  Create a binomial distribution with the given number of trials and probability of success.

  Parameters:
    `r` - the number of successes
    `p` - the probability of success

Method Detail

### getNumberOfSuccesses

    public int getNumberOfSuccesses()

  Access the number of successes for this distribution.

  Specified by:
    `getNumberOfSuccesses` in interface `PascalDistribution`
  Returns:
    the number of successes

### getProbabilityOfSuccess

    public double getProbabilityOfSuccess()

  Access the probability of success for this distribution.

  Specified by:
    `getProbabilityOfSuccess` in interface `PascalDistribution`
  Returns:
    the probability of success

### setNumberOfSuccesses

    @Deprecated
    public void setNumberOfSuccesses(int successes)

  Deprecated. as of 2.1 (class will become immutable in 3.0)

  Change the number of successes for this distribution.

  Specified by:
    `setNumberOfSuccesses` in interface `PascalDistribution`
  Parameters:
    `successes` - the new number of successes
  Throws:
    `java.lang.IllegalArgumentException` - if `successes` is not positive.

### setNumberOfSuccessesInternal

    private void setNumberOfSuccessesInternal(int successes)

  Change the number of successes for this distribution.

  Parameters:
    `successes` - the new number of successes
  Throws:
    `java.lang.IllegalArgumentException` - if `successes` is not positive.

### setProbabilityOfSuccess

    @Deprecated
    public void setProbabilityOfSuccess(double p)

  Deprecated. as of 2.1 (class will become immutable in 3.0)

  Change the probability of success for this distribution.

  Specified by:
    `setProbabilityOfSuccess` in interface `PascalDistribution`
  Parameters:
    `p` - the new probability of success
  Throws:
    `java.lang.IllegalArgumentException` - if `p` is not a valid probability.

### setProbabilityOfSuccessInternal

    private void setProbabilityOfSuccessInternal(double p)

  Change the probability of success for this distribution.

  Parameters:
    `p` - the new probability of success
  Throws:
    `java.lang.IllegalArgumentException` - if `p` is not a valid probability.

### getDomainLowerBound

    protected int getDomainLowerBound(double p)

  Access the domain value lower bound, based on `p`, used to bracket a PDF root.

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

### getDomainUpperBound

    protected int getDomainUpperBound(double p)

  Access the domain value upper bound, based on `p`, used to bracket a PDF root.

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

### cumulativeProbability

    public double cumulativeProbability(int x)
                                 throws MathException

  For this distribution, X, this method returns P(X ≤ x).

  Specified by:
    `cumulativeProbability` in interface `IntegerDistribution`
  Specified by:
    `cumulativeProbability` in class `AbstractIntegerDistribution`
  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(int x)

  For this distribution, X, this method returns P(X = x).

  Specified by:
    `probability` in interface `IntegerDistribution`
  Parameters:
    `x` - the value at which the PMF is evaluated
  Returns:
    PMF for this distribution

### inverseCumulativeProbability

    public int inverseCumulativeProbability(double p)
                                     throws MathException

  For this distribution, X, this method returns the largest x, such that P(X ≤ x) ≤ `p`.

  Returns `-1` for p=0 and `Integer.MAX_VALUE` for p=1.

  Specified by:
    `inverseCumulativeProbability` in interface `IntegerDistribution`
  Overrides:
    `inverseCumulativeProbability` in class `AbstractIntegerDistribution`
  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

Copyright (c) 2003-2010 Apache Software Foundation