(index ("make-swb-random-state" 0) ("swb-random!" 528) ("swb-random-natural!" 786) ("swb-random-real!" 1091) ("swb-random-range!" 1436) ("swb-random" 1864) ("swb-random-natural" 2154) ("swb-random-real" 2492) ("swb-random-range" 2869))
(def (sig (procedure "make-swb-random-state:: CONG-SEED SHR-SEED -> SWB-STATE" (id make-swb-random-state))) (p "Creates an initial seed array and generator state. The seed vector is filled one bit at a time by taking the leading bit of the xor of a shift register and a congruential sequence.  The congruential generator is " (tt "(c*48271) mod (2^30 - 1)") ". The shift register generator is " (tt "c(I + L18)(I + R13)") ".  The same congruential generator continues to be used as a mixing generator with the SWB generator."))
(def (sig (procedure "swb-random!:: SWB-STATE -> FIXNUM" (id swb-random!))) (p "Computes the next random number. The output from the SWB generator is xor-ed with a number from the linear congruential generator. This procedure modifies its input argument."))
(def (sig (procedure "swb-random-natural!:: SWB-STATE -> FIXNUM" (id swb-random-natural!))) (p "Computes the next random number and returns its absolute value. The output from the SWB generator is xor-ed with a number from the linear congruential generator. This procedure modifies its input argument."))
(def (sig (procedure "swb-random-real!:: SWB-STATE -> FLONUM" (id swb-random-real!))) (p "Computes the two next random numbers and uses them to construct a real number of the range " (tt "[0..1]") ". The output from the SWB generator is xor-ed with a number from the linear congruential generator. This procedure modifies its input argument."))
(def (sig (procedure "swb-random-range!:: (FIXNUM * FIXNUM) -> (SWB-STATE -> FIXNUM)" (id swb-random-range!))) (p "Given a range " (tt "[i..j], 0 <= i < j") ", returns a procedure that takes in a random number generator state and computes a random number in the given range. The output from the SWB generator is xor-ed with a number from the linear congruential generator. The returned procedure modifies its input argument."))
(def (sig (procedure "swb-random:: SWB-STATE -> SWB-STATE * FIXNUM" (id swb-random))) (p "Computes the next random number. The output from the SWB generator is xor-ed with a number from the linear congruential generator. The new generator state is returned along with the random number."))
(def (sig (procedure "swb-random-natural:: SWB-STATE -> SWB-STATE * FIXNUM" (id swb-random-natural))) (p "Computes the next random number and returns its absolute values. The output from the SWB generator is xor-ed with a number from the linear congruential generator. The new generator state is returned along with the random number."))
(def (sig (procedure "swb-random-real:: SWB-STATE -> SWB-STATE * FLONUM" (id swb-random-real))) (p "Computes the two next random numbers and uses them to construct a real number of the range " (tt "[0..1]") ". The output from the SWB generator is xor-ed with a number from the linear congruential generator. The new generator state is returned along with the random number."))
(def (sig (procedure "swb-random-range:: (FIXNUM * FIXNUM) -> (SWB-STATE -> SWB-STATE * FIXNUM)" (id swb-random-range))) (p "Given a range " (tt "[i..j], 0 <= i < j") ", returns a procedure that takes in a random number generator state and computes a random number in the given range. The output from the SWB generator is xor-ed with a number from the linear congruential generator. The new generator state is returned along with the random number."))
