cern.jet.random

## Class NegativeBinomial

- java.lang.Object
- - cern.colt.PersistentObject
  - - cern.jet.random.AbstractDistribution
    - - cern.jet.random.AbstractDiscreteDistribution
      - - cern.jet.random.NegativeBinomial

All Implemented Interfaces:
  DoubleFunction, IntFunction, java.io.Serializable, java.lang.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:
  Serialized Form

### Field Summary

### Fields inherited from class cern.colt.PersistentObject

`serialVersionUID`

### Constructor Summary

Constructors
Constructor and Description
`NegativeBinomial(int n, double p, RandomEngine randomGenerator)` Constructs a Negative Binomial distribution.

### Method Summary

Methods
`double` `cdf(int k)` Returns the cumulative distribution function.
`java.lang.Object` `clone()` Returns a deep copy of the receiver; the copy will produce identical sequences.
`int` `nextInt()` Returns a random number from the distribution.
`int` `nextInt(int n, double p)` Returns a random number from the distribution; bypasses the internal state.
`double` `pdf(int k)` Returns the probability distribution function.
`void` `setNandP(int n, double p)` Sets the parameters number of trials and the probability of success.
`static int` `staticNextInt(int n, double p)` Returns a random number from the distribution with the given parameters n and p.
`java.lang.String` `toString()` Returns a String representation of the receiver.

### Methods inherited from class cern.jet.random.AbstractDiscreteDistribution

`nextDouble`

### Methods inherited from class cern.jet.random.AbstractDistribution

`apply, apply, makeDefaultGenerator`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### 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 Detail

#### cdf

    public double cdf(int k)

Returns the cumulative distribution function.

#### clone

    public java.lang.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 java.lang.String toString()

Returns a String representation of the receiver.

Overrides:
  `toString` in class `java.lang.Object`