(FILECREATED " 4-Jun-86 11:03:15" {QV}<PEDERSEN>LISP>RANDOMVARS.;1 1580
changes to: (VARS RANDOMVARSCOMS)
(FNS GAUSS-RV))
(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT RANDOMVARSCOMS)
(RPAQQ RANDOMVARSCOMS ((FNS GAUSS-RV)))
(DEFINEQ
(GAUSS-RV
[LAMBDA (MU SIGMA) (* jop: " 3-Jun-86 17:48")
(* * Gaussian variates ala BOX-MUELLER)
(SETQ MU (FLOAT (OR MU 0.0)))
(SETQ SIGMA (FLOAT (OR SIGMA 1.0)))
(if (LEQ SIGMA 0.0)
then (ERROR "SIGMA must be positive" SIGMA))
(FPLUS MU (FTIMES SIGMA (LET [(STORE (QUOTE (NIL]
(if (CAR STORE)
then (PROG1 (CAR STORE)
(RPLACA STORE NIL))
else (LET ((TWOPI (CONSTANT (FTIMES 2.0 \IEEE.SHORT.PI)))
(R1 (RAND 0.0 1.0))
(R2 (RAND 0.0 1.0))
ALPHA BETA)
[SETQ ALPHA (SQRT (FTIMES -2.0 (LOG R1]
(SETQ BETA (FTIMES TWOPI R2))
(RPLACA STORE (FTIMES ALPHA (COS BETA T)))
(FTIMES ALPHA (SIN BETA T])
)
(PUTPROPS RANDOMVARS COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
(FILEMAP (NIL (304 1499 (GAUSS-RV 314 . 1497)))))
STOP