! mersenne twister based on
! https://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/CODES/mt19937ar.c
USING: accessors alien.c-types alien.data fry init kernel math
-math.bitwise namespaces random sequences sequences.private
-specialized-arrays system ;
+math.bitwise math.private namespaces random sequences
+sequences.private specialized-arrays system ;
SPECIALIZED-ARRAY: uint
IN: random.mersenne-twister
M: mersenne-twister random-32*
[ next-index ]
[ seq>> nth-unsafe mt-temper ]
- [ [ 1 + ] change-i drop ] tri ;
+ [ [ 1 fixnum+fast ] change-i drop ] tri ;
: default-mersenne-twister ( -- mersenne-twister )
nano-count <mersenne-twister> ;