cern.jet.random
Class Normal

java.lang.Object
  extended by cern.colt.PersistentObject
      extended by cern.jet.random.AbstractDistribution
          extended by cern.jet.random.AbstractContinousDistribution
              extended by cern.jet.random.Normal
All Implemented Interfaces:
DoubleFunction, IntFunction, java.io.Serializable, java.lang.Cloneable

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.

Author:
wolfgang.hoschek@cern.ch
See Also:
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
 
Fields inherited from class cern.colt.PersistentObject
serialVersionUID
 
Constructor Summary
Normal(double mean, double standardDeviation, RandomEngine 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(RandomEngine 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,
              RandomEngine 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(RandomEngine 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