## cern.jet.random Class Normal

```java.lang.Object
|
+--cern.colt.PersistentObject
|
+--cern.jet.random.AbstractDistribution
|
+--cern.jet.random.AbstractContinousDistribution
|
+--cern.jet.random.Normal
```
All Implemented Interfaces:
java.lang.Cloneable, cern.colt.function.DoubleFunction, cern.colt.function.IntFunction, 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.

Serialized Form

 Field Summary `protected  double` `cache` `protected  boolean` `cacheFilled` `protected  double` `mean` `protected static Normal` `shared` `protected  double` `SQRT_INV` `protected  double` `standardDeviation` `protected  double` `variance`

 Fields inherited from class cern.jet.random.AbstractDistribution `randomGenerator`

 Constructor Summary ```Normal(double mean, double standardDeviation, RandomElement randomGenerator)```           Constructs a normal (gauss) distribution.

 Method Summary ` 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(RandomElement randomGenerator)`           Sets the uniform random generator internally used. ` void` ```setState(double mean, double standardDeviation)```           Sets the mean and variance. `static double` ```staticNextDouble(double mean, double standardDeviation)```           Returns a random number from the distribution with the given mean and standard deviation. ` java.lang.String` `toString()`           Returns a String representation of the receiver.

 Methods inherited from class cern.jet.random.AbstractDistribution `apply, apply, clone, getRandomGenerator, makeDefaultGenerator, nextInt`

 Methods inherited from class java.lang.Object `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`

### shared

`protected static Normal shared`
 Constructor Detail

### Normal

```public Normal(double mean,
double standardDeviation,
RandomElement 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(RandomElement 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.

### staticNextDouble

```public static double staticNextDouble(double mean,
double standardDeviation)```
Returns a random number from the distribution with the given mean and standard deviation.

### toString

`public java.lang.String toString()`
Returns a String representation of the receiver.

Overrides:
`toString` in class `java.lang.Object`