FUNCTION g_rand, dum ; Subroutine to return a normally distributed deviate with zero mean ; and unit variance (a la Abramowitz/Stegun p953, Acceptance-rejection(4).) ; ; 6/7/91 dd ; COMMON rand, seed ; Comment this out to use systime for seed ; if n_elements(seed) eq 0 then seed = 17 REPEAT BEGIN u1 = randomu(seed) u2 = randomu(seed) x = -1.0*ALOG(u1) ENDREP UNTIL ( (x-1.0)*(x-1.0) LT -2.0*ALOG(u2) ) IF randomu(seed) LT 0.5 THEN x = -1.0*x RETURN, x END