aboutsummaryrefslogtreecommitdiff
path: root/forth/rand.fs
blob: 2bd244783535bab9316f5d572fd869e54c32e02f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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) !
;