6 struct Normaldev
: Ran
{
8 Normaldev(Doub mmu
, Doub ssig
, Ullong i
)
9 : Ran(i
), mu(mmu
), sig(ssig
){}
10 // Constructor arguments are mu, sigma, and a random sequence seed.
12 // Return a normal deviate.
16 v
= 1.7156*(doub()-0.5);
18 y
= abs(v
) + 0.386595;
19 q
= SQR(x
) + y
*(0.19600*y
-0.25472*x
);
21 && (q
> 0.27846 || SQR(v
) > -4.*log(u
)*SQR(u
)));