Class Zeta

All Implemented Interfaces:
DoubleFunction, IntFunction, Serializable, Cloneable

public class Zeta extends AbstractDiscreteDistribution
Zeta distribution.

Valid parameter ranges: ro > 0 and pk >= 0.

If either ro > 100 or k > 10000 numerical problems in computing the theoretical moments arise, therefore ro <= 100 and k <= 10000 are recommended.

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:

Method: Acceptance/Rejection. High performance implementation.
This is a port and adaption of Zeta.c from the C-RAND / WIN-RAND library. C-RAND's implementation, in turn, is based upon

J. Dagpunar (1988): Principles of Random Variate Generation, Clarendon Press, Oxford.

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

    • ro

      protected double ro
    • pk

      protected double pk
    • c

      protected double c
    • d

      protected double d
    • ro_prev

      protected double ro_prev
    • pk_prev

      protected double pk_prev
    • maxlongint

      protected double maxlongint
    • shared

      protected static Zeta shared
  • Constructor Details

    • Zeta

      public Zeta(double ro, double pk, RandomEngine randomGenerator)
      Constructs a Zeta distribution.
  • Method Details

    • generateZeta

      protected long generateZeta(double ro, double pk, RandomEngine randomGenerator)
      Returns a zeta distributed random number.
    • nextInt

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

      public void setState(double ro, double pk)
      Sets the parameters.
    • staticNextInt

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