packages feed

kempe-0.2.0.0: examples/splitmix.kmp

; from here: http://prng.di.unimi.it/splitmix64.c

; given a seed, return a random value and the new seed
next : Word -- Word Word
     =: [ 0x9e3779b97f4a7c15u +~ dup
          dup 30u >>~ xoru 0xbf58476d1ce4e5b9u *~
          dup 27u >>~ xoru 0x94d049bb133111ebu *~
          dup 31u >>~ xoru
        ]

%foreign kabi next