]> gitweb.factorcode.org Git - factor.git/commitdiff
uniform-random-float speed
authorJoe Groff <arcata@gmail.com>
Wed, 6 May 2009 22:26:21 +0000 (17:26 -0500)
committerJoe Groff <arcata@gmail.com>
Wed, 6 May 2009 22:26:21 +0000 (17:26 -0500)
basis/random/random.factor

index e3f1ecccb90f91af8d8631fcc14c2bb9cbacc176..6b02c8a3e88a6c4ac2c785745f0ee32a23f6ca4e 100755 (executable)
@@ -3,7 +3,7 @@
 USING: alien.c-types kernel math namespaces sequences
 io.backend io.binary combinators system vocabs.loader
 summary math.bitwise byte-vectors fry byte-arrays
-math.ranges math.constants math.functions ;
+math.ranges math.constants math.functions accessors ;
 IN: random
 
 SYMBOL: system-random-generator
@@ -70,8 +70,11 @@ PRIVATE>
     secure-random-generator get swap with-random ; inline
 
 : uniform-random-float ( min max -- n )
-    64 random-bits >float [ over - 2.0 -64 ^ * ] dip
-    * + ;
+    4 random-bytes underlying>> *uint >float
+    4 random-bytes underlying>> *uint >float
+    2.0 32 ^ * +
+    [ over - 2.0 -64 ^ * ] dip
+    * + ; inline
 
 : normal-random-float ( mean sigma -- n )
     0.0 1.0 uniform-random-float