public class CDF_Normal
extends java.lang.Object
Constructor and Description |
---|
CDF_Normal() |
Modifier and Type | Method and Description |
---|---|
static double |
normp(double z)
This method calculates the normal cumulative distribution function.
|
static double |
xnormi(double p)
This method calculates the normal cdf inverse function.
|
public static double xnormi(double p)
Let PHI(x) be the normal cdf. Suppose that Q calculates 1.0 - PHI(x), and that QINV calculates QINV(p) for p in (0.0,.5]. Then for p .le. .5, x = PHIINV(p) = -QINV(p). For p .gt. .5, x = PHIINV(p) = QINV(1.0 - p). The formula for approximating QINV is taken from Abramowitz and Stegun, Handbook of Mathematical Functions, Dover, 9th printing, formula 26.2.3, page 933. The error in x is claimed to be less than 4.5e-4 in absolute value. FIX: Eventually I should build in a check that p lies in (0,1)
p
- p must lie between 0 and 1. xnormi returns
the normal cdf inverse evaluated at p.
Steve Verrillpublic static double normp(double z)
It is based upon algorithm 5666 for the error function, from:
Hart, J.F. et al, 'Computer Approximations', Wiley 1968
The FORTRAN programmer was Alan Miller. The documentation in the FORTRAN code claims that the function is "accurate to 1.e-15."
Steve Verrill translated the FORTRAN code (the March 30, 1986 version) into Java. This translation was performed on January 10, 2001.
z
- The method returns the value of the normal
cumulative distribution function at z.