From d00a92eb232b03cc5e19a33c407c0f0efd50b784 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 21 Sep 2018 22:00:43 +0200 Subject: ... --- forth/rand.fs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 forth/rand.fs (limited to 'forth/rand.fs') diff --git a/forth/rand.fs b/forth/rand.fs new file mode 100644 index 0000000..2bd2447 --- /dev/null +++ b/forth/rand.fs @@ -0,0 +1,17 @@ +\ Fast Random Number Generator algorithm by George Marsaglia "Xorshift RNGs" + +-rnd +marker -rnd + +: xorshift ( n -- n ) + dup #13 lshift xor + dup #17 rshift xor + dup #5 lshift xor +; + +variable (rnd) \ seed +ticks (rnd) ! \ initialize seed + +: rnd ( -- n ) + (rnd) @ xorshift dup (rnd) ! +; -- cgit v1.2.3