Package weka.core

Class RandomVariates

  • All Implemented Interfaces:
    java.io.Serializable, RevisionHandler

    public final class RandomVariates
    extends java.util.Random
    implements RevisionHandler
    Class implementing some simple random variates generator.
    Version:
    $Revision: 5360 $
    Author:
    Xin Xu (xx5@cs.waikato.ac.nz)
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      RandomVariates()
      Simply the constructor of super class
      RandomVariates​(long seed)
      Simply the constructor of super class
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getRevision()
      Returns the revision string.
      static void main​(java.lang.String[] ops)
      Main method for testing this class.
      double nextErlang​(int a)
      Generate a value of a variate following standard Erlang distribution.
      double nextExponential()
      Generate a value of a variate following standard exponential distribution using simple inverse method.
      double nextGamma​(double a)
      Generate a value of a variate following standard Gamma distribution with shape parameter a.
      • Methods inherited from class java.util.Random

        doubles, doubles, doubles, doubles, ints, ints, ints, ints, longs, longs, longs, longs, nextBoolean, nextBytes, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong, setSeed
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RandomVariates

        public RandomVariates()
        Simply the constructor of super class
      • RandomVariates

        public RandomVariates​(long seed)
        Simply the constructor of super class
        Parameters:
        seed - the seed in this random object
    • Method Detail

      • nextExponential

        public double nextExponential()
        Generate a value of a variate following standard exponential distribution using simple inverse method.

        Variates related to standard Exponential can be generated using simple transformations.

        Returns:
        a value of the variate
      • nextErlang

        public double nextErlang​(int a)
                          throws java.lang.Exception
        Generate a value of a variate following standard Erlang distribution. It can be used when the shape parameter is an integer and not too large, say, <100. When the parameter is not an integer (which is often named Gamma distribution) or is large, use nextGamma(double a) instead.
        Parameters:
        a - the shape parameter, must be no less than 1
        Returns:
        a value of the variate
        Throws:
        java.lang.Exception - if parameter less than 1
      • nextGamma

        public double nextGamma​(double a)
                         throws java.lang.Exception
        Generate a value of a variate following standard Gamma distribution with shape parameter a.

        If a>1, it uses a rejection method developed by Minh(1988)"Generating Gamma Variates", ACM Trans. on Math. Software, Vol.14, No.3, pp261-266.
        If a<1, it uses the algorithm "GS" developed by Ahrens and Dieter(1974) "COMPUTER METHODS FOR SAMPLING FROM GAMMA, BETA, POISSON AND BINOMIAL DISTRIBUTIONS", COMPUTING, 12 (1974), pp223-246, and further implemented in Fortran by Ahrens, Kohrt and Dieter(1983) "Algorithm 599: sampling from Gamma and Poisson distributions", ACM Trans. on Math. Software, Vol.9 No.2, pp255-257.

        Variates related to standard Gamma can be generated using simple transformations.

        Parameters:
        a - the shape parameter, must be greater than 1
        Returns:
        a value of the variate
        Throws:
        java.lang.Exception - if parameter not greater than 1
      • getRevision

        public java.lang.String getRevision()
        Returns the revision string.
        Specified by:
        getRevision in interface RevisionHandler
        Returns:
        the revision
      • main

        public static void main​(java.lang.String[] ops)
        Main method for testing this class.
        Parameters:
        ops - # of variates/seed, default is 10/45