1 |
+ |
{ RCSid $Id$ } |
2 |
|
{ |
3 |
|
Normal Distribution Functions |
4 |
|
|
13 |
|
|
14 |
|
NORMF : 1/sqrt(2*PI) ; |
15 |
|
|
16 |
< |
Z(u) = NORMF * exp(-u*u/2) ; |
16 |
> |
Z(u) : NORMF * exp(-u*u/2) ; |
17 |
|
|
18 |
< |
Q(u) = if( u, Q1(u), 1-Q1(-u) ) ; |
18 |
> |
{ ### Old approximation: |
19 |
|
|
20 |
< |
Q1(u) = Z(u) * Q2(1/(1+.2316419*u)) ; |
20 |
< |
|
21 |
< |
Q2(t) = t*(.31938153+t*(-.356563782+t*(1.781477937+ |
20 |
> |
Q2(t) : t*(.31938153+t*(-.356563782+t*(1.781477937+ |
21 |
|
t*(-1.821255978+t*1.330274429)))) ; |
22 |
|
|
23 |
< |
u(p) = if( .5-p, u1(p), -u1(1-p) ) ; |
23 |
> |
Q1(u) : Z(u) * Q2(1/(1+.2316419*u)) ; |
24 |
|
|
25 |
< |
u1(p) = u2(sqrt(log(1/p/p))) ; |
25 |
> |
Q(u) : if( u, Q1(u), 1-Q1(-u) ) ; |
26 |
|
|
27 |
< |
u2(t) = t - (2.515517+t*(.802853+t*.010328))/ |
27 |
> |
### erf() gives us exact value: } |
28 |
> |
|
29 |
> |
Q(u) : .5 - .5*erf(u/sqrt(2)) ; |
30 |
> |
|
31 |
> |
u2(t) : t - (2.515517+t*(.802853+t*.010328))/ |
32 |
|
(1+t*(1.432788+t*(.189269+t*.001308))) ; |
33 |
+ |
|
34 |
+ |
u1(p) : u2(sqrt(-2*log(p))) ; |
35 |
+ |
|
36 |
+ |
u(p) : if( .5-p, u1(p), -u1(1-p) ) ; |