Package weka.core
Class RandomVariates
- java.lang.Object
-
- java.util.Random
-
- weka.core.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 classRandomVariates(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.
-
-
-
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, usenextGamma(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 interfaceRevisionHandler
- 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
-
-