Class NegativeBinomial

All Implemented Interfaces:
DoubleFunction, IntFunction, Serializable, Cloneable

public class NegativeBinomial extends AbstractDiscreteDistribution
Negative Binomial distribution; See the math definition.

Instance methods operate on a user supplied uniform random number generator; they are unsynchronized.

Static methods operate on a default uniform random number generator; they are synchronized.

Implementation: High performance implementation. Compound method.

This is a port of nbp.c from the C-RAND / WIN-RAND library. C-RAND's implementation, in turn, is based upon

J.H. Ahrens, U. Dieter (1974): Computer methods for sampling from gamma, beta, Poisson and binomial distributions, Computing 12, 223--246.

Version:
1.0, 09/24/99
See Also:
  • Field Details

    • n

      protected int n
    • p

      protected double p
    • gamma

      protected Gamma gamma
    • poisson

      protected Poisson poisson
    • shared

      protected static NegativeBinomial shared
  • Constructor Details

    • NegativeBinomial

      public NegativeBinomial(int n, double p, RandomEngine randomGenerator)
      Constructs a Negative Binomial distribution. Example: n=1, p=0.5.
      Parameters:
      n - the number of trials.
      p - the probability of success.
      randomGenerator - a uniform random number generator.
  • Method Details

    • cdf

      public double cdf(int k)
      Returns the cumulative distribution function.
    • clone

      public Object clone()
      Returns a deep copy of the receiver; the copy will produce identical sequences. After this call has returned, the copy and the receiver have equal but separate state.
      Overrides:
      clone in class AbstractDistribution
      Returns:
      a copy of the receiver.
    • nextInt

      public int nextInt()
      Returns a random number from the distribution.
      Specified by:
      nextInt in class AbstractDiscreteDistribution
    • nextInt

      public int nextInt(int n, double p)
      Returns a random number from the distribution; bypasses the internal state.
    • pdf

      public double pdf(int k)
      Returns the probability distribution function.
    • setNandP

      public void setNandP(int n, double p)
      Sets the parameters number of trials and the probability of success.
      Parameters:
      n - the number of trials
      p - the probability of success.
    • staticNextInt

      public static int staticNextInt(int n, double p)
      Returns a random number from the distribution with the given parameters n and p.
      Parameters:
      n - the number of trials
      p - the probability of success.
    • toString

      public String toString()
      Returns a String representation of the receiver.
      Overrides:
      toString in class Object
    • xstaticSetRandomGenerator

      private static void xstaticSetRandomGenerator(RandomEngine randomGenerator)
      Sets the uniform random number generated shared by all static methods.
      Parameters:
      randomGenerator - the new uniform random number generator to be shared.