sim.util.distribution

Class Normal

• All Implemented Interfaces:
java.io.Serializable

```public class Normal
extends AbstractContinousDistribution```
Normal (aka Gaussian) distribution; See the math definition and animated definition.
```
1                       2
pdf(x) = ---------    exp( - (x-mean) / 2v )
sqrt(2pi*v)

x
-
1        | |                 2
cdf(x) = ---------    |    exp( - (t-mean) / 2v ) dt
sqrt(2pi*v)| |
-
-inf.
```
where v = variance = standardDeviation^2.

Instance methods operate on a user supplied uniform random number generator; they are unsynchronized.

Static methods operate on a default uniform random number generator; they are synchronized.

Implementation: Polar Box-Muller transformation. See G.E.P. Box, M.E. Muller (1958): A note on the generation of random normal deviates, Annals Math. Statist. 29, 610-611.

See Also:
Serialized Form
• Field Summary

Fields
Modifier and Type Field and Description
`protected double` `cache`
`protected boolean` `cacheFilled`
`protected double` `mean`
`protected double` `SQRT_INV`
`protected double` `standardDeviation`
`protected double` `variance`
• Fields inherited from class sim.util.distribution.AbstractDistribution

`randomGenerator`
• Constructor Summary

Constructors
Constructor and Description
```Normal(double mean, double standardDeviation, MersenneTwisterFast randomGenerator)```
Constructs a normal (gauss) distribution.
• Method Summary

Methods
Modifier and Type Method and Description
`double` `cdf(double x)`
Returns the cumulative distribution function.
`double` `nextDouble()`
Returns a random number from the distribution.
`double` ```nextDouble(double mean, double standardDeviation)```
Returns a random number from the distribution; bypasses the internal state.
`double` `pdf(double x)`
Returns the probability distribution function.
`protected void` `setRandomGenerator(MersenneTwisterFast randomGenerator)`
Sets the uniform random generator internally used.
`void` ```setState(double mean, double standardDeviation)```
Sets the mean and variance.
`java.lang.String` `toString()`
Returns a String representation of the receiver.
• Methods inherited from class sim.util.distribution.AbstractDistribution

`apply, apply, getRandomGenerator, nextInt`
• Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
• Field Detail

• mean

`protected double mean`
• variance

`protected double variance`
• standardDeviation

`protected double standardDeviation`
• cache

`protected double cache`
• cacheFilled

`protected boolean cacheFilled`
• SQRT_INV

`protected double SQRT_INV`
• Constructor Detail

• Normal

```public Normal(double mean,
double standardDeviation,
MersenneTwisterFast randomGenerator)```
Constructs a normal (gauss) distribution. Example: mean=0.0, standardDeviation=1.0.
• Method Detail

• cdf

`public double cdf(double x)`
Returns the cumulative distribution function.
• nextDouble

`public double nextDouble()`
Returns a random number from the distribution.
Specified by:
`nextDouble` in class `AbstractDistribution`
• nextDouble

```public double nextDouble(double mean,
double standardDeviation)```
Returns a random number from the distribution; bypasses the internal state.
• pdf

`public double pdf(double x)`
Returns the probability distribution function.
• setRandomGenerator

`protected void setRandomGenerator(MersenneTwisterFast randomGenerator)`
Sets the uniform random generator internally used.
Overrides:
`setRandomGenerator` in class `AbstractDistribution`
• setState

```public void setState(double mean,
double standardDeviation)```
Sets the mean and variance.
• toString

`public java.lang.String toString()`
Returns a String representation of the receiver.
Overrides:
`toString` in class `java.lang.Object`