SSJ API Documentation
Stochastic Simulation in Java
Loading...
Searching...
No Matches
umontreal.ssj.randvar.GammaAcceptanceRejectionGen Class Reference

This class implements gamma random variate generators using a method that combines acceptance-rejection with acceptance-complement, and proposed in [2], [4] . More...

Inheritance diagram for umontreal.ssj.randvar.GammaAcceptanceRejectionGen:
umontreal.ssj.randvar.GammaGen umontreal.ssj.randvar.RandomVariateGen

Public Member Functions

 GammaAcceptanceRejectionGen (RandomStream s, RandomStream aux, double alpha, double lambda)
 Creates a gamma random variate generator with parameters.
 GammaAcceptanceRejectionGen (RandomStream s, double alpha, double lambda)
 Creates a gamma random variate generator with parameters.
 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.
 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 ()
 Generates a random number from the continuous distribution contained in this object.
double nextDoubleLog ()
 Returns the natural log value of a new gamma variate.
Public Member Functions inherited from umontreal.ssj.randvar.GammaGen
 GammaGen (RandomStream s, double alpha, double lambda)
 Creates a gamma random variate generator with parameters.
 GammaGen (RandomStream s, double alpha)
 Creates a gamma random variate generator with parameters.
 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 umontreal.ssj.randvar.RandomVariateGen
 RandomVariateGen (RandomStream s, Distribution dist)
 Creates a new random variate generator from the distribution dist, using stream s.
void nextArrayOfDouble (double[] v, int start, int n)
 Generates n random numbers from the continuous distribution contained in this object.
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.
RandomStream getStream ()
 Returns the umontreal.ssj.rng.RandomStream used by this generator.
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.
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.
static double nextDoubleLog (RandomStream s, double alpha, double lambda)
 Same as nextDoubleLog (s, s, alpha, lambda).

Additional Inherited Members

Protected Member Functions inherited from umontreal.ssj.randvar.GammaGen
void setParams (double alpha, double lambda)
 Sets the parameter \(\alpha\) and \(\lambda\) of this object.

Detailed Description

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 @f$\alpha@f$ is small. When @f$\alpha< 0.1@f$, the
              acceptance-rejection algorithm of

[164]  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.

Definition at line 63 of file GammaAcceptanceRejectionGen.java.

Constructor & Destructor Documentation

◆ GammaAcceptanceRejectionGen() [1/4]

umontreal.ssj.randvar.GammaAcceptanceRejectionGen.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.

Definition at line 122 of file GammaAcceptanceRejectionGen.java.

◆ GammaAcceptanceRejectionGen() [2/4]

umontreal.ssj.randvar.GammaAcceptanceRejectionGen.GammaAcceptanceRejectionGen ( RandomStream s,
double alpha,
double lambda )

Creates a gamma random variate generator with parameters.

\(\alpha=\) alpha and \(\lambda=\) lambda, using stream s.

Definition at line 136 of file GammaAcceptanceRejectionGen.java.

◆ GammaAcceptanceRejectionGen() [3/4]

umontreal.ssj.randvar.GammaAcceptanceRejectionGen.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.

Definition at line 145 of file GammaAcceptanceRejectionGen.java.

◆ GammaAcceptanceRejectionGen() [4/4]

umontreal.ssj.randvar.GammaAcceptanceRejectionGen.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.

Definition at line 159 of file GammaAcceptanceRejectionGen.java.

Member Function Documentation

◆ getAuxStream()

RandomStream umontreal.ssj.randvar.GammaAcceptanceRejectionGen.getAuxStream ( )

Returns the auxiliary stream associated with this object.

Definition at line 166 of file GammaAcceptanceRejectionGen.java.

◆ nextDouble() [1/3]

double umontreal.ssj.randvar.GammaAcceptanceRejectionGen.nextDouble ( )

Generates a random number from the continuous distribution contained in this object.

By default, this method uses inversion by calling the umontreal.ssj.probdist.ContinuousDistribution.inverseF method of the distribution object. Alternative generating methods are provided in subclasses.

Returns
the generated value

Reimplemented from umontreal.ssj.randvar.RandomVariateGen.

Definition at line 217 of file GammaAcceptanceRejectionGen.java.

◆ nextDouble() [2/3]

double umontreal.ssj.randvar.GammaAcceptanceRejectionGen.nextDouble ( RandomStream s,
double alpha,
double lambda )
static

Same as nextDouble (s, s, alpha, lambda).

Reimplemented from umontreal.ssj.randvar.GammaGen.

Definition at line 227 of file GammaAcceptanceRejectionGen.java.

◆ nextDouble() [3/3]

double umontreal.ssj.randvar.GammaAcceptanceRejectionGen.nextDouble ( RandomStream s,
RandomStream aux,
double alpha,
double lambda )
static

Generates a new gamma variate with parameters \(\alpha= \) alpha and \(\lambda= \) lambda, using main stream s and auxiliary stream aux.

Definition at line 176 of file GammaAcceptanceRejectionGen.java.

◆ nextDoubleLog() [1/3]

double umontreal.ssj.randvar.GammaAcceptanceRejectionGen.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.

Definition at line 237 of file GammaAcceptanceRejectionGen.java.

◆ nextDoubleLog() [2/3]

double umontreal.ssj.randvar.GammaAcceptanceRejectionGen.nextDoubleLog ( RandomStream s,
double alpha,
double lambda )
static

Same as nextDoubleLog (s, s, alpha, lambda).

Definition at line 268 of file GammaAcceptanceRejectionGen.java.

◆ nextDoubleLog() [3/3]

double umontreal.ssj.randvar.GammaAcceptanceRejectionGen.nextDoubleLog ( RandomStream s,
RandomStream aux,
double alpha,
double lambda )
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.

Definition at line 253 of file GammaAcceptanceRejectionGen.java.


The documentation for this class was generated from the following file: