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. | |
| 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. | |
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.
| 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.
| 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.
| 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.
| 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.
| RandomStream umontreal.ssj.randvar.GammaAcceptanceRejectionGen.getAuxStream | ( | ) |
Returns the auxiliary stream associated with this object.
Definition at line 166 of file GammaAcceptanceRejectionGen.java.
| 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.
Reimplemented from umontreal.ssj.randvar.RandomVariateGen.
Definition at line 217 of file GammaAcceptanceRejectionGen.java.
|
static |
Same as nextDouble (s, s, alpha, lambda).
Reimplemented from umontreal.ssj.randvar.GammaGen.
Definition at line 227 of file GammaAcceptanceRejectionGen.java.
|
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.
| 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.
|
static |
Same as nextDoubleLog (s, s, alpha, lambda).
Definition at line 268 of file GammaAcceptanceRejectionGen.java.
|
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.