## Class NormalDistributionImpl

• All Implemented Interfaces:
`java.io.Serializable`, `ContinuousDistribution`, `Distribution`, `HasDensity<java.lang.Double>`, `NormalDistribution`

```public class NormalDistributionImpl
extends AbstractContinuousDistribution
implements NormalDistribution, java.io.Serializable```
Default implementation of `NormalDistribution`.
Serialized Form
• ### Field Summary

Fields
Modifier and Type Field Description
`static double` `DEFAULT_INVERSE_ABSOLUTE_ACCURACY`
Default inverse cumulative probability accuracy
• ### Constructor Summary

Constructors
Constructor Description
`NormalDistributionImpl()`
Creates normal distribution with the mean equal to zero and standard deviation equal to one.
```NormalDistributionImpl​(double mean, double sd)```
Create a normal distribution using the given mean and standard deviation.
```NormalDistributionImpl​(double mean, double sd, double inverseCumAccuracy)```
Create a normal distribution using the given mean, standard deviation and inverse cumulative distribution accuracy.
• ### Method Summary

All Methods
Modifier and Type Method Description
`double` `cumulativeProbability​(double x)`
For this distribution, X, this method returns P(X < `x`).
`double` `density​(double x)`
Returns the probability density for a particular point.
`double` `density​(java.lang.Double x)`
Deprecated.
`double` `getMean()`
Access the mean.
`double` `getNumericalVariance()`
Returns the variance.
`double` `getStandardDeviation()`
Access the standard deviation.
`double` `getSupportLowerBound()`
Returns the lower bound of the support for the distribution.
`double` `getSupportUpperBound()`
Returns the upper bound of the support for the distribution.
`double` `inverseCumulativeProbability​(double p)`
For this distribution, X, this method returns the critical point x, such that P(X < x) = `p`.
`double` `sample()`
Generates a random value sampled from this distribution.
`void` `setMean​(double mean)`
Deprecated.
as of 2.1 (class will become immutable in 3.0)
`void` `setStandardDeviation​(double sd)`
Deprecated.
as of 2.1 (class will become immutable in 3.0)
• ### Methods inherited from class org.apache.commons.math.distribution.AbstractContinuousDistribution

`reseedRandomGenerator, sample`
• ### Methods inherited from class org.apache.commons.math.distribution.AbstractDistribution

`cumulativeProbability`
• ### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Methods inherited from interface org.apache.commons.math.distribution.Distribution

`cumulativeProbability`
• ### Field Detail

• #### DEFAULT_INVERSE_ABSOLUTE_ACCURACY

`public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY`
Default inverse cumulative probability accuracy
Since:
2.1
Constant Field Values
• ### Constructor Detail

• #### NormalDistributionImpl

```public NormalDistributionImpl​(double mean,
double sd)```
Create a normal distribution using the given mean and standard deviation.
Parameters:
`mean` - mean for this distribution
`sd` - standard deviation for this distribution
• #### NormalDistributionImpl

```public NormalDistributionImpl​(double mean,
double sd,
double inverseCumAccuracy)```
Create a normal distribution using the given mean, standard deviation and inverse cumulative distribution accuracy.
Parameters:
`mean` - mean for this distribution
`sd` - standard deviation for this distribution
`inverseCumAccuracy` - inverse cumulative probability accuracy
Since:
2.1
• #### NormalDistributionImpl

`public NormalDistributionImpl()`
Creates normal distribution with the mean equal to zero and standard deviation equal to one.
• ### Method Detail

• #### getMean

`public double getMean()`
Access the mean.
Specified by:
`getMean` in interface `NormalDistribution`
Returns:
mean for this distribution
• #### setMean

```@Deprecated
public void setMean​(double mean)```
Deprecated.
as of 2.1 (class will become immutable in 3.0)
Modify the mean.
Specified by:
`setMean` in interface `NormalDistribution`
Parameters:
`mean` - for this distribution
• #### getStandardDeviation

`public double getStandardDeviation()`
Access the standard deviation.
Specified by:
`getStandardDeviation` in interface `NormalDistribution`
Returns:
standard deviation for this distribution
• #### setStandardDeviation

```@Deprecated
public void setStandardDeviation​(double sd)```
Deprecated.
as of 2.1 (class will become immutable in 3.0)
Modify the standard deviation.
Specified by:
`setStandardDeviation` in interface `NormalDistribution`
Parameters:
`sd` - standard deviation for this distribution
Throws:
`java.lang.IllegalArgumentException` - if `sd` is not positive.
• #### density

```@Deprecated
public double density​(java.lang.Double x)```
Deprecated.
Return the probability density for a particular point.
Specified by:
`density` in interface `HasDensity<java.lang.Double>`
Specified by:
`density` in interface `NormalDistribution`
Parameters:
`x` - The point at which the density should be computed.
Returns:
The pdf at point x.
• #### density

`public double density​(double x)`
Returns the probability density for a particular point.
Overrides:
`density` in class `AbstractContinuousDistribution`
Parameters:
`x` - The point at which the density should be computed.
Returns:
The pdf at point x.
Since:
2.1
• #### cumulativeProbability

```public double cumulativeProbability​(double x)
throws MathException```
For this distribution, X, this method returns P(X < `x`). If `x`is more than 40 standard deviations from the mean, 0 or 1 is returned, as in these cases the actual value is within `Double.MIN_VALUE` of 0 or 1.
Specified by:
`cumulativeProbability` in interface `Distribution`
Parameters:
`x` - the value at which the CDF is evaluated.
Returns:
CDF evaluated at `x`.
Throws:
`MathException` - if the algorithm fails to converge
• #### inverseCumulativeProbability

```public double inverseCumulativeProbability​(double p)
throws MathException```
For this distribution, X, this method returns the critical point x, such that P(X < x) = `p`.

Returns `Double.NEGATIVE_INFINITY` for p=0 and `Double.POSITIVE_INFINITY` for p=1.

Specified by:
`inverseCumulativeProbability` in interface `ContinuousDistribution`
Overrides:
`inverseCumulativeProbability` in class `AbstractContinuousDistribution`
Parameters:
`p` - the desired probability
Returns:
x, such that P(X < x) = `p`
Throws:
`MathException` - if the inverse cumulative probability can not be computed due to convergence or other numerical errors.
`java.lang.IllegalArgumentException` - if `p` is not a valid probability.
• #### sample

```public double sample()
throws MathException```
Generates a random value sampled from this distribution.
Overrides:
`sample` in class `AbstractContinuousDistribution`
Returns:
random value
Throws:
`MathException` - if an error occurs generating the random value
Since:
2.2
• #### getSupportLowerBound

`public double getSupportLowerBound()`
Returns the lower bound of the support for the distribution. The lower bound of the support is always negative infinity no matter the parameters.
Returns:
lower bound of the support (always Double.NEGATIVE_INFINITY)
Since:
2.2
• #### getSupportUpperBound

`public double getSupportUpperBound()`
Returns the upper bound of the support for the distribution. The upper bound of the support is always positive infinity no matter the parameters.
Returns:
upper bound of the support (always Double.POSITIVE_INFINITY)
Since:
2.2
• #### getNumericalVariance

`public double getNumericalVariance()`
Returns the variance. For standard deviation parameter `s`, the variance is `s^2`
Returns:
the variance
Since:
2.2