Class Poisson

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

      Fields 
      Modifier and Type Field Description
      protected double c_pm  
      protected double dl  
      protected double dr  
      protected double f1  
      protected double f2  
      protected double f4  
      protected double f5  
      protected int k1  
      protected int k2  
      protected int k4  
      protected int k5  
      protected double l_my  
      protected double ll  
      protected int llll  
      protected double lr  
      protected int m  
      protected double mean  
      protected static double MEAN_MAX  
      protected double my_last  
      protected double my_old  
      protected double p  
      protected double p0  
      protected double p1  
      protected double p2  
      protected double p3  
      protected double p4  
      protected double p5  
      protected double p6  
      protected double[] pp  
      protected double q  
      protected double r1  
      protected double r2  
      protected double r4  
      protected double r5  
      protected static Poisson shared  
      protected static double SWITCH_MEAN  
    • Constructor Summary

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

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      private static double f​(int k, double l_nu, double c_pm)  
      int nextInt()
      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.
      java.lang.String toString()
      Returns a String representation of the receiver.
      private static void xstaticSetRandomGenerator​(RandomEngine randomGenerator)
      Sets the uniform random number generated shared by all static methods.
      • Methods inherited from class java.lang.Object

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

      • 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
      • shared

        protected static Poisson shared
    • Constructor Detail

      • Poisson

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

        private static double f​(int k,
                                double l_nu,
                                double c_pm)
      • 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 java.lang.String toString()
        Returns a String representation of the receiver.
        Overrides:
        toString in class java.lang.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.