Class PascalDistributionImpl

All Implemented Interfaces:
Serializable, DiscreteDistribution, Distribution, IntegerDistribution, PascalDistribution

public class PascalDistributionImpl extends AbstractIntegerDistribution implements PascalDistribution, Serializable
The default implementation of PascalDistribution.
Since:
1.2
See Also:
  • Constructor Details

    • PascalDistributionImpl

      public PascalDistributionImpl(int r, double p)
      Create a Pascal distribution with the given number of trials and probability of success.
      Parameters:
      r - the number of successes
      p - the probability of success
  • Method Details

    • 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:
      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:
      IllegalArgumentException - if p is not a valid probability.
    • 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) invalid input: '<'= p
      Throws:
      MathException - if the inverse cumulative probability can not be computed due to convergence or other numerical errors.
      IllegalArgumentException - if p invalid input: '<' 0 or p > 1
    • getSupportLowerBound

      public int getSupportLowerBound()
      Returns the lower bound of the support for the distribution. The lower bound of the support is always 0 no matter the parameters.
      Returns:
      lower bound of the support (always 0)
      Since:
      2.2
    • getSupportUpperBound

      public int getSupportUpperBound()
      Returns the upper bound of the support for the distribution. The upper bound of the support is always positive infinity no matter the parameters. Positive infinity is represented by Integer.MAX_VALUE together with AbstractIntegerDistribution.isSupportUpperBoundInclusive() being false
      Returns:
      upper bound of the support (always Integer.MAX_VALUE for positive infinity)
      Since:
      2.2
    • getNumericalMean

      public double getNumericalMean()
      Returns the mean. For number of successes r and probability of success p, the mean is ( r * p ) / ( 1 - p )
      Returns:
      the mean
      Since:
      2.2
    • getNumericalVariance

      public double getNumericalVariance()
      Returns the variance. For number of successes r and probability of success p, the mean is ( r * p ) / ( 1 - p )^2
      Returns:
      the variance
      Since:
      2.2