SSJ
3.3.1
Stochastic Simulation in Java
|
This class implements gamma random variate generators using a method that combines acceptance-rejection with acceptance-complement, and proposed in [2], [4] . More...
Public Member Functions | |
GammaAcceptanceRejectionGen (RandomStream s, RandomStream aux, double alpha, double lambda) | |
Creates a gamma random variate generator with parameters \(\alpha=\) alpha and \(\lambda=\) lambda , using main stream s and auxiliary stream aux . More... | |
GammaAcceptanceRejectionGen (RandomStream s, double alpha, double lambda) | |
Creates a gamma random variate generator with parameters \(\alpha=\) alpha and \(\lambda=\) lambda , using stream s . | |
GammaAcceptanceRejectionGen (RandomStream s, RandomStream aux, GammaDist dist) | |
Creates a new generator object for the gamma distribution dist , using main stream s and auxiliary stream aux . More... | |
GammaAcceptanceRejectionGen (RandomStream s, GammaDist dist) | |
Creates a new generator object for the gamma distribution dist and stream s for both the main and auxiliary stream. | |
RandomStream | getAuxStream () |
Returns the auxiliary stream associated with this object. | |
double | nextDouble () |
double | nextDoubleLog () |
Returns the natural log value of a new gamma variate. More... | |
Public Member Functions inherited from GammaGen | |
GammaGen (RandomStream s, double alpha, double lambda) | |
Creates a gamma random variate generator with parameters \(\alpha=\) alpha and \(\lambda\) = lambda , using stream s . | |
GammaGen (RandomStream s, double alpha) | |
Creates a gamma random variate generator with parameters \(\alpha=\) alpha and \(\lambda= 1\), using stream s . | |
GammaGen (RandomStream s, GammaDist dist) | |
Creates a new generator object for the gamma distribution dist and stream s . | |
double | getAlpha () |
Returns the parameter \(\alpha\) of this object. | |
double | getLambda () |
Returns the parameter \(\lambda\) of this object. | |
Public Member Functions inherited from RandomVariateGen | |
RandomVariateGen (RandomStream s, Distribution dist) | |
Creates a new random variate generator from the distribution dist , using stream s . More... | |
double | nextDouble () |
Generates a random number from the continuous distribution contained in this object. More... | |
void | nextArrayOfDouble (double[] v, int start, int n) |
Generates n random numbers from the continuous distribution contained in this object. More... | |
double [] | nextArrayOfDouble (int n) |
Generates n random numbers from the continuous distribution contained in this object, and returns them in a new array of size n . More... | |
RandomStream | getStream () |
Returns the umontreal.ssj.rng.RandomStream used by this generator. More... | |
void | setStream (RandomStream stream) |
Sets the umontreal.ssj.rng.RandomStream used by this generator to stream . | |
Distribution | getDistribution () |
Returns the umontreal.ssj.probdist.Distribution used by this generator. More... | |
String | toString () |
Returns a String containing information about the current generator. | |
Static Public Member Functions | |
static double | nextDouble (RandomStream s, RandomStream aux, double alpha, double lambda) |
Generates a new gamma variate with parameters \(\alpha= \) alpha and \(\lambda= \) lambda , using main stream s and auxiliary stream aux . | |
static double | nextDouble (RandomStream s, double alpha, double lambda) |
Same as nextDouble (s, s, alpha, lambda) . | |
static double | nextDoubleLog (RandomStream s, RandomStream aux, double alpha, double lambda) |
Returns the natural log value of a new gamma variate with parameters \(\alpha= \) alpha and \(\lambda= \) lambda , using main stream s and auxiliary stream aux . More... | |
static double | nextDoubleLog (RandomStream s, double alpha, double lambda) |
Same as nextDoubleLog (s, s, alpha, lambda) . | |
Static Public Member Functions inherited from GammaGen | |
static double | nextDouble (RandomStream s, double alpha, double lambda) |
Generates a new gamma random variate with parameters \(\alpha= \) alpha and \(\lambda= \) lambda , using stream s . | |
Additional Inherited Members | |
Protected Member Functions inherited from GammaGen | |
void | setParams (double alpha, double lambda) |
Sets the parameter \(\alpha\) and \(\lambda\) of this object. | |
Protected Attributes inherited from GammaGen | |
double | alpha = -1.0 |
double | lambda = -1.0 |
Protected Attributes inherited from RandomVariateGen | |
RandomStream | stream |
Distribution | dist |
This class implements gamma random variate generators using a method that combines acceptance-rejection with acceptance-complement, and proposed in [2], [4] .
It uses acceptance-rejection for \(\alpha<1\) and acceptance-complement for \(\alpha\ge1\).
The above papers may lead to numerical errors when \(\alpha\) is small. When \(\alpha< 0.1\), the acceptance-rejection algorithm of [168] will be used. This algorithm generates the log value of a gamma variate and it can handle a very small \(\alpha\) parameter. Use the nextDoubleLog
methods to get the natural log value of the generated gamma.
When \(\alpha\) is close to 0, the generated gamma variate may be numerically too small to be represented by the primitive date type double
. The method nextDoubleLog
can be used to generate the natural log value of a gamma variate. This allows the generation of very small gamma variates.
For each gamma variate, the first uniform required is taken from the main stream and all additional uniforms (after the first rejection) are obtained from the auxiliary stream.
GammaAcceptanceRejectionGen | ( | RandomStream | s, |
RandomStream | aux, | ||
double | alpha, | ||
double | lambda | ||
) |
Creates a gamma random variate generator with parameters \(\alpha=\) alpha
and \(\lambda=\) lambda
, using main stream s
and auxiliary stream aux
.
The auxiliary stream is used when a random number of uniforms is required for a rejection-type generation method.
GammaAcceptanceRejectionGen | ( | RandomStream | s, |
RandomStream | aux, | ||
GammaDist | dist | ||
) |
Creates a new generator object for the gamma distribution dist
, using main stream s
and auxiliary stream aux
.
The auxiliary stream is used when a random number of uniforms is required for a rejection-type generation method.
double nextDoubleLog | ( | ) |
Returns the natural log value of a new gamma variate.
When the shape parameter \(\alpha\) is close to 0, generating the log value of the gamma variate is numerically more stable than generating directly the gamma value with nextDouble
.
|
static |
Returns the natural log value of a new gamma variate with parameters \(\alpha= \) alpha
and \(\lambda= \) lambda
, using main stream s
and auxiliary stream aux
.
When the shape parameter \(\alpha\) is close to 0, generating the log value of the gamma variate is numerically more stable than generating directly the gamma value with nextDouble
.