
SSJ V. 2.6. 

PREV PACKAGE NEXT PACKAGE  FRAMES NO FRAMES 
See:
Description
Class Summary  

BernoulliGen  This class implements random variate generators for the
Bernoulli distribution (see class
BernoulliDist ). 
BetaGen  This class implements random variate generators with the beta distribution with shape parameters α > 0 and β > 0, over the interval (a, b), where a < b. 
BetaRejectionLoglogisticGen  Implements Beta random variate generators using the rejection method with loglogistic envelopes. 
BetaStratifiedRejectionGen  This class implements Beta random variate generators using the stratified rejection/patchwork rejection method. 
BetaSymmetricalBestGen  This class implements symmetrical beta random variate generators using Devroye's oneliner method. 
BetaSymmetricalGen  This class implements random variate generators with the symmetrical beta distribution with shape parameters α = β, over the interval (0, 1). 
BetaSymmetricalPolarGen  This class implements symmetrical beta random variate generators using Ulrich's polar method. 
BinomialConvolutionGen  Implements binomial random variate generators using the convolution method. 
BinomialGen  This class implements random variate generators for the binomial distribution. 
CauchyGen  This class implements random variate generators for the Cauchy distribution. 
ChiGen  This class implements random variate generators for the chi distribution. 
ChiRatioOfUniformsGen  This class implements Chi random variate generators using the ratio of uniforms method with shift. 
ChiSquareGen  This class implements random variate generators with the chi square distribution with n > 0 degrees of freedom. 
ChiSquareNoncentralGamGen  This class implements noncentral chi square random variate generators using the additive property of the noncentral chi square distribution. 
ChiSquareNoncentralGen  This class implements random variate generators for the noncentral chi square distribution with ν > 0 degrees of freedom and noncentrality parameter λ > 0. 
ChiSquareNoncentralPoisGen  This class implements noncentral chi square random variate generators using Poisson and central chi square generators. 
ConstantGen  This class implements a random variate generator that returns a constant value. 
ErlangConvolutionGen  This class implements Erlang random variate generators using the convolution method. 
ErlangGen  This class implements random variate generators for the Erlang distribution with parameters k > 0 and λ > 0. 
ExponentialGen  This class implements random variate generators for the exponential distribution. 
ExponentialInverseFromDensityGen  This class implements exponential random variate generators using numerical inversion of the exponential density as described in. 
ExtremeValueGen  Deprecated. 
FatigueLifeGen  This class implements random variate generators for the fatigue life distribution with location parameter μ, scale parameter β and shape parameter γ. 
FisherFGen  This class implements random variate generators for the Fisher F distribution with n and m degrees of freedom, where n and m are positive integers. 
FNoncentralGen  This class implements random variate generators for the noncentral Fdistribution. 
FoldedNormalGen  This class implements methods for generating random variates from the folded normal distribution with parameters μ >= 0 and σ > 0. 
FrechetGen  This class implements methods for generating random variates from the Fréchet distribution, with location parameter δ, scale parameter β > 0, and shape parameter α > 0, where we use the notation z = (x  δ)/β. 
GammaAcceptanceRejectionGen  This class implements gamma random variate generators using a method that combines acceptancerejection with acceptancecomplement. 
GammaGen  This class implements random variate generators for the gamma distribution. 
GammaRejectionLoglogisticGen  This class implements gamma random variate generators using a rejection method with loglogistic envelopes,. 
GeometricGen  This class implements a random variate generator for the geometric distribution. 
GumbelGen  This class implements methods for generating random variates from the Gumbel distribution. 
HalfNormalGen  This class implements methods for generating random variates from the halfnormal distribution with parameters μ and σ > 0. 
HyperbolicSecantGen  This class implements random variate generators for the hyperbolic secant distribution with location parameter μ and scale parameter σ. 
HypergeometricGen  This class implements random variate generators for the hypergeometric distribution. 
HypoExponentialGen  This class implements random variate generators for the
hypoexponential distribution (see classes
HypoExponentialDist and
HypoExponentialDistQuick
in package probdist for the definition). 
InverseFromDensityGen  Implements a method for generating random variates by numerical inversion of an arbitrary continuous distribution when only the probability density is known. 
InverseGammaGen  This class implements random variate generators for the inverse gamma distribution with shape parameter α > 0 and scale parameter β > 0. 
InverseGaussianGen  This class implements random variate generators for the inverse Gaussian distribution with location parameter μ > 0 and scale parameter λ > 0. 
InverseGaussianMSHGen  This class implements inverse gaussian random variate generators using the manytoone transformation method of Michael, Schucany and Haas (MHS). 
JohnsonSBGen  This class implements random variate generators for the Johnson S_{B} distribution. 
JohnsonSLGen  This class implements random variate generators for the Johnson S_{L} distribution. 
JohnsonSUGen  This class implements random variate generators for the Johnson S_{U} distribution. 
KernelDensityGen  This class implements random variate generators for distributions obtained via kernel density estimation methods from a set of n individual observations x_{1},..., x_{n}. 
KernelDensityVarCorrectGen  This class is a variant of KernelDensityGen , but with
a rescaling of the empirical distribution so that the variance
of the density used to generate the random variates is equal
to the empirical variance,
as suggested by Silverman. 
LaplaceGen  This class implements methods for generating random variates from the Laplace distribution. 
LogarithmicGen  This class implements random variate generators for the (discrete) logarithmic distribution. 
LogisticGen  This class implements random variate generators for the logistic distribution. 
LoglogisticGen  This class implements random variate generators for the loglogistic distribution with shape parameter α > 0 and scale parameter β > 0. 
LognormalGen  This class implements methods for generating random variates from the lognormal distribution. 
LognormalSpecialGen  Implements methods for generating random variates from the lognormal distribution using an arbitrary normal random variate generator. 
NakagamiGen  This class implements random variate generators for the Nakagami distribution. 
NegativeBinomialGen  This class implements random variate generators having the negative binomial distribution. 
NormalACRGen  This class implements normal random variate generators using the acceptancecomplement ratio method. 
NormalBoxMullerGen  This class implements normal random variate generators using the BoxMuller method. 
NormalGen  This class implements methods for generating random variates from the normal distribution N(μ, σ). 
NormalInverseFromDensityGen  This class implements normal random variate generators using numerical inversion of the normal density as described in. 
NormalInverseGaussianGen  This class implements random variate generators for the normal inverse gaussian (NIG) distribution. 
NormalInverseGaussianIGGen  . 
NormalKindermannRamageGen  This class implements normal random variate generators using the KindermannRamage method. 
NormalPolarGen  This class implements normal random variate generators using the polar method with rejection. 
ParetoGen  This class implements random variate generators for one of the Pareto distributions, with parameters α > 0 and β > 0. 
PascalConvolutionGen  Implements Pascal random variate generators by the convolution method. 
PascalGen  Implements Pascal random variate generators, which is a special case of the negative binomial generator with parameter γ equal to a positive integer. 
Pearson5Gen  Deprecated. 
Pearson6Gen  This class implements random variate generators for the Pearson type VI distribution with shape parameters α_{1} > 0 and α_{2} > 0, and scale parameter β > 0. 
PoissonGen  This class implements random variate generators having the Poisson distribution. 
PoissonTIACGen  This class implements random variate generators having the Poisson
distribution (see PoissonGen ). 
PowerGen  This class implements random variate generators for the power distribution with shape parameter c > 0, over the interval [a, b]. 
RandomVariateGen  This is the base class for all random variate generators over the real line. 
RandomVariateGenInt  This is the base class for all generators of discrete random variates over the set of integers. 
RandomVariateGenWithCache  This class represents a random variate generator whose values are cached for more efficiency when using common random numbers. 
RayleighGen  This class implements random variate generators for the Rayleigh distribution. 
StudentGen  This class implements methods for generating random variates from the Student distribution with n > 0 degrees of freedom. 
StudentNoncentralGen  This class implements random variate generators for the noncentral Studentt distribution with n > 0 degrees of freedom and noncentrality parameter δ. 
StudentPolarGen  This class implements Student random variate generators using the polar method of. 
TriangularGen  This class implements random variate generators for the triangular distribution. 
UniformGen  This class implements random variate generators for the (continuous) uniform distribution over the interval (a, b), where a and b are real numbers with a < b. 
UniformIntGen  This class implements a random variate generator for the uniform distribution over integers, over the interval [i, j]. 
UnuranContinuous  This class permits one to create continuous univariate generators using UNURAN via its string API. 
UnuranDiscreteInt  This class permits one to create a discrete univariate generator using UNURAN via its string API. 
UnuranEmpirical  This class permits one to create generators for empirical and quasiempirical univariate distributions using UNURAN via its string interface. 
WeibullGen  This class implements random variate generators for the Weibull distribution. 
Exception Summary  

UnuranException  This type of unchecked exception is thrown when an error occurs inside the UNURAN package. 
This package provides a collection of classes for nonuniform random variate generation, primarily from standard distributions.
Each nonuniform random variate generator requires
at least one RandomStream
object
(from package rng
), used to
generate the underlying uniform random numbers.
The generic classes
RandomVariateGen
and
RandomVariateGenInt
permit one to construct a random variate generator from a random
stream and an arbitrary distribution
(see interface Distribution
).
To generate random variates by inversion from an arbitrary
distribution over the real numbers using a given random stream,
it suffices to construct a
RandomVariateGen
object
with the desired (previously created)
Distribution
and RandomStream
objects,
and then call its
nextDouble
method
as many times as needed.
For discrete distributions over the integers, one can construct a
RandomVariateGenInt
object containing the
desired DiscreteDistributionInt
and RandomStream
,
and call its
nextInt
method.
By default, these generators simply call the
inverseF
method from the specified distribution object.
These two classes suffice as long as we are willing to use inversion.
Here is a simple example in which we create three parallel streams of
normal random variates using inversion.
[label=lst:normaltest,caption=Using three parallel streams of random normal variates,lineskip=2pt,emph=genere,main ]exam/normaltest.java
To generate random variates by other methods than inversion,
one can use specialized classes that extend
RandomVariateGen
or RandomVariateGenInt
.
Such classes are provided for a variety of standard discrete and
continuous distributions.
For example, five different subclasses implement normal random variate generators,
using five different methods.
One of them, the class
NormalGen
,
extends RandomVariateGen
directly and provides normal random variate generators based on inversion,
so it does the same thing as using
RandomVariateGen
with the normal distribution.
The others are subclasses of
NormalGen
;
they implement various noninversion normal variate generation methods.
To generate random variates with a specific method, it suffices to
construct an object of the appropriate subclass and then call its
nextDouble method.
In most cases, the specialized classes maintain local copies of the
distribution parameters and use them for variate generation.
If the parameters of the contained distribution objects are later modified,
this may lead to inconsistencies: the variate generator object will
keep using the old values.
In fact, the constructors of the specialized classes often precompute
constants and tables based on these parameter values, which would have
to be recomputed if the parameters are changed.
On the other hand, the generic classes
RandomVariateGen
and
RandomVariateGenInt
call directly the inverseF method of the contained
distribution object, so they will always use the new parameter values
whenever the parameters in the distribution object are changed.
With some variate generation methods (e.g., the rejection
method), the number of uniforms required to get a single nonuniform
variate varies from one call to the next.
In that case, an auxiliary stream is often used to preserve
the synchronization between random variates when implementing
variancereduction methods.
The main random number stream is called a fixed number of times
per nonuniform variate generation. If more uniform random numbers
are needed, they are obtained from the auxiliary stream.
For these types of generators, two
RandomStream
objects
should be passed to the constructor.
Otherwise, by default, the same stream will be used for all uniforms.
Static methods in the specialized classes allow the generation
of random variates from specific distributions without constructing a
RandomVariateGen
object.
This package also provides an interface to the
UNURAN (Universal NonUniform RANdom number generators) package,
a rich library of C functions designed and
implemented by the ARVAG (Automatic Random VAriate Generation)
project group in Vienna.
This interface can be used to access distributions or
generation methods not available directly in SSJ.
To get a UNURAN generator, it suffices to instantiate one
of the UNURAN interface classes:
UnuranDiscreteInt
for discrete random variates,
UnuranContinuous
for continuous ones (in one dimension), and
UnuranEmpirical
for quasiempirical distributions based on experimental data.
The type of distribution and its parameters are specified to
UNURAN via its String API (see the UNURAN documentation).
Only univariate distributions are supported because
the UNURAN String API does not support the multivariate ones yet.
In the UNURAN interface classes,
nextDouble
and
nextInt
can be invoked as usual to generate variates,
but these methods are slowed down significantly by the overhead
in the interactions between code on the native side and on the Java side.
When several random variates are needed, it is much more efficient to
generate them in a single call, via the methods
nextArrayOfDouble
and
nextArrayOfInt
.

SSJ V. 2.6. 

PREV PACKAGE NEXT PACKAGE  FRAMES NO FRAMES 