load random.sfmt by default, and use it as default random-generator if sse2 is present
parent
e758d4061a
commit
83bc4907d4
|
@ -0,0 +1 @@
|
|||
Doug Coleman
|
|
@ -0,0 +1,10 @@
|
|||
! 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
|
|
@ -76,7 +76,3 @@ M: mersenne-twister random-32* ( mt -- r )
|
|||
: 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
|
||||
|
|
|
@ -112,4 +112,4 @@ PRIVATE>
|
|||
{ [ os unix? ] [ "random.unix" require ] }
|
||||
} cond
|
||||
|
||||
"random.mersenne-twister" require
|
||||
"random.backend" require
|
||||
|
|
|
@ -152,3 +152,6 @@ M: sfmt seed-random ( sfmt seed -- sfmt )
|
|||
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> ;
|
||||
|
|
Loading…
Reference in New Issue