Class PoissonSlow

  • All Implemented Interfaces:
    DoubleFunction, IntFunction, java.io.Serializable, java.lang.Cloneable

    public class PoissonSlow
    extends AbstractDiscreteDistribution
    Poisson distribution; 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: This is a port of RandPoisson used in CLHEP 1.4.0 (C++). CLHEP's implementation, in turn, is based upon "W.H.Press et al., Numerical Recipes in C, Second Edition".

    Version:
    1.0, 09/24/99
    See Also:
    Serialized Form
    • Field Detail

      • mean

        protected double mean
      • cached_sq

        protected double cached_sq
      • cached_alxm

        protected double cached_alxm
      • cached_g

        protected double cached_g
      • cof

        protected static final double[] cof
    • Constructor Detail

      • PoissonSlow

        public PoissonSlow​(double mean,
                           RandomEngine randomGenerator)
        Constructs a poisson distribution. Example: mean=1.0.
    • Method Detail

      • logGamma

        public static double logGamma​(double xx)
        Returns the value ln(Gamma(xx) for xx > 0. Full accuracy is obtained for xx > 1. For 0 < xx < 1. the reflection formula (6.1.4) can be used first. (Adapted from Numerical Recipes in C)
      • nextInt

        private int nextInt​(double theMean)
        Returns a random number from the distribution; bypasses the internal state.
      • nextIntSlow

        protected int nextIntSlow()
        Returns a random number from the distribution.
      • 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.