138 |
|
(1+t*(1.432788+t*(.189269+t*.001308))) ; |
139 |
|
un1`private(p) : un2`private(sqrt(-2*log(p))) ; |
140 |
|
|
141 |
< |
unif2norm(p) : if( .5-p, un1`private(p), -un1`private(1-p) ) ; |
141 |
> |
unif2norm(p) : if( .5-p, -un1`private(p), un1`private(1-p) ) ; |
142 |
|
|
143 |
|
nrand(x) = unif2norm(rand(x)); |
144 |
|
|
145 |
|
{ Local (u,v) coordinates for planar surfaces } |
146 |
|
crosslen`private = Nx*Nx + Ny*Ny; |
147 |
< |
{ U is distance from origin in XY-plane } |
147 |
> |
{ U is distance from projected Z-axis } |
148 |
|
U = if( crosslen`private - FTINY, |
149 |
|
(Py*Nx - Px*Ny)/crosslen`private, |
150 |
|
Px); |