]> gitweb.factorcode.org Git - factor.git/commitdiff
load random.sfmt by default, and use it as default random-generator if sse2 is present
authorDoug Coleman <doug.coleman@gmail.com>
Thu, 8 Oct 2009 02:05:51 +0000 (21:05 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Thu, 8 Oct 2009 02:05:51 +0000 (21:05 -0500)
basis/random/backend/authors.txt [new file with mode: 0644]
basis/random/backend/backend.factor [new file with mode: 0644]
basis/random/mersenne-twister/mersenne-twister.factor
basis/random/random.factor
basis/random/sfmt/sfmt.factor

diff --git a/basis/random/backend/authors.txt b/basis/random/backend/authors.txt
new file mode 100644 (file)
index 0000000..b4bd0e7
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
\ No newline at end of file
diff --git a/basis/random/backend/backend.factor b/basis/random/backend/backend.factor
new file mode 100644 (file)
index 0000000..eaed73f
--- /dev/null
@@ -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
index 51112ae980b266b64cc7b7aacfea42f36cd5bf35..0c1683a8bc1bc65524515c218858c111505c1ed6 100644 (file)
@@ -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
index 197c2324046bf5461e3485d5c43ca2ccc251ca3d..06be2778e7dab44f5f6ef8c66f822c9994c6c581 100755 (executable)
@@ -112,4 +112,4 @@ PRIVATE>
     { [ os unix? ] [ "random.unix" require ] }
 } cond
 
-"random.mersenne-twister" require
+"random.backend" require
index 8be330ec20494220ccd3e005cc74bac1c93f1754..28883838ce0a6f94cb6ae6162e296908abdf0423 100644 (file)
@@ -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> ;