Class Poisson

All Implemented Interfaces:
DoubleFunction, IntFunction, Serializable, Cloneable

public class Poisson extends AbstractDiscreteDistribution
Poisson distribution (quick); See the math definition and animated definition.

p(k) = (mean^k / k!) * exp(-mean) for k >= 0.

Valid parameter ranges: mean > 0. Note: if mean <= 0.0 then always returns zero.

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. Patchwork Rejection/Inversion method.

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

H. Zechner (1994): Efficient sampling from continuous and discrete unimodal distributions, Doctoral Dissertation, 156 pp., Technical University Graz, Austria.

Also see

Stadlober E., H. Zechner (1999), The patchwork rejection method for sampling from unimodal distributions, to appear in ACM Transactions on Modelling and Simulation.

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

    Fields
    Modifier and Type
    Field
    Description
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected int
     
    protected int
     
    protected int
     
    protected int
     
    protected double
     
    protected double
     
    protected int
     
    protected double
     
    protected int
     
    protected double
     
    protected static final double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double[]
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected double
     
    protected static Poisson
     
    protected static final double
     

    Fields inherited from class cern.jet.random.AbstractDistribution

    randomGenerator

    Fields inherited from class cern.colt.PersistentObject

    serialVersionUID
  • Constructor Summary

    Constructors
    Constructor
    Description
    Poisson(double mean, RandomEngine randomGenerator)
    Constructs a poisson distribution.
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    cdf(int k)
    Returns the cumulative distribution function.
    Returns a deep copy of the receiver; the copy will produce identical sequences.
    private static double
    f(int k, double l_nu, double c_pm)
     
    int
    Returns a random number from the distribution.
    int
    nextInt(double theMean)
    Returns a random number from the distribution; bypasses the internal state.
    double
    pdf(int k)
    Returns the probability distribution function.
    void
    setMean(double mean)
    Sets the mean.
    static int
    staticNextInt(double mean)
    Returns a random number from the distribution with the given mean.
    Returns a String representation of the receiver.
    private static void
    Sets the uniform random number generated shared by all static methods.

    Methods inherited from class cern.jet.random.AbstractDiscreteDistribution

    nextDouble

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • mean

      protected double mean
    • my_old

      protected double my_old
    • p

      protected double p
    • q

      protected double q
    • p0

      protected double p0
    • pp

      protected double[] pp
    • llll

      protected int llll
    • my_last

      protected double my_last
    • ll

      protected double ll
    • k2

      protected int k2
    • k4

      protected int k4
    • k1

      protected int k1
    • k5

      protected int k5
    • dl

      protected double dl
    • dr

      protected double dr
    • r1

      protected double r1
    • r2

      protected double r2
    • r4

      protected double r4
    • r5

      protected double r5
    • lr

      protected double lr
    • l_my

      protected double l_my
    • c_pm

      protected double c_pm
    • f1

      protected double f1
    • f2

      protected double f2
    • f4

      protected double f4
    • f5

      protected double f5
    • p1

      protected double p1
    • p2

      protected double p2
    • p3

      protected double p3
    • p4

      protected double p4
    • p5

      protected double p5
    • p6

      protected double p6
    • m

      protected int m
    • MEAN_MAX

      protected static final double MEAN_MAX
      See Also:
    • SWITCH_MEAN

      protected static final double SWITCH_MEAN
      See Also:
    • shared

      protected static Poisson shared
  • Constructor Details

    • Poisson

      public Poisson(double mean, RandomEngine randomGenerator)
      Constructs a poisson distribution. Example: mean=1.0.
  • 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.
    • f

      private static double f(int k, double l_nu, double c_pm)
    • nextInt

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

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

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

      public void setMean(double mean)
      Sets the mean.
    • staticNextInt

      public static int staticNextInt(double mean)
      Returns a random number from the distribution with the given mean.
    • 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.