--- /dev/null
+Doug Coleman
\ No newline at end of file
--- /dev/null
+! Copyright (C) 2009 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: cpu.x86.features init kernel namespaces random
+random.mersenne-twister random.sfmt ;
+IN: random.backend
+
+[
+ sse2? [ default-sfmt ] [ default-mersenne-twister ] if
+ random-generator set-global
+] "bootstrap.random" add-init-hook
: default-mersenne-twister ( -- mersenne-twister )
[ 32 random-bits ] with-system-random
<mersenne-twister> ;
-
-[
- default-mersenne-twister random-generator set-global
-] "bootstrap.random" add-init-hook
{ [ os unix? ] [ "random.unix" require ] }
} cond
-"random.mersenne-twister" require
+"random.backend" require
uint-4{ HEX: dfffffef HEX: ddfecb7f HEX: bffaffff HEX: bffffff6 }
uint-4{ HEX: 1 HEX: 0 HEX: 0 HEX: 13c9e684 }
<sfmt> ; inline
+
+: default-sfmt ( -- sfmt )
+ [ random-32 ] with-secure-random <sfmt-19937> ;