public class NormalGen extends RandomVariateGen
The following table gives the CPU time needed to generate 108 standard normal random variates using the different implementations available in SSJ. The first time is for a generator object (non-static method), and the second time is for the static method where no object is created. These tests were made on a machine with processor AMD Athlon 4000, running Red Hat Linux, with clock speed at 2403 MHz. The static method nextDouble() for NormalBoxMullerGen and NormalPolarGen uses only one number out of two that are generated; thus they are twice slower than the non-static method.
| Generator | time in seconds | time in seconds |
| (object) | (static) | |
| NormalGen | 7.67 | 7.72 |
| NormalACRGen | 4.71 | 4.76 |
| NormalBoxMullerGen | 16.07 | 31.45 |
| NormalPolarGen | 7.31 | 13.74 |
| NormalKindermannRamageGen | 5.38 | 5.34 |
| Constructor and Description |
|---|
NormalGen(RandomStream s)
Creates a standard normal random variate generator with mean
0 and standard deviation 1, using stream s.
|
NormalGen(RandomStream s,
double mu,
double sigma)
Creates a normal random variate generator with mean mu
and standard deviation sigma, using stream s.
|
NormalGen(RandomStream s,
NormalDist dist)
Creates a random variate generator for the normal distribution
dist and stream s.
|
| Modifier and Type | Method and Description |
|---|---|
double |
getMu()
Returns the parameter μ of this object.
|
double |
getSigma()
Returns the parameter σ of this object.
|
static double |
nextDouble(RandomStream s,
double mu,
double sigma)
Generates a variate from the normal distribution with
parameters μ = mu and σ = sigma, using
stream s.
|
getDistribution, getStream, nextArrayOfDouble, nextDouble, setStreampublic NormalGen(RandomStream s, double mu, double sigma)
public NormalGen(RandomStream s)
public NormalGen(RandomStream s, NormalDist dist)
public static double nextDouble(RandomStream s, double mu, double sigma)
public double getMu()
public double getSigma()
To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.