]> gitweb.factorcode.org Git - factor.git/commitdiff
remove m-n-as-a-slot
authorDoug Coleman <doug.coleman@gmail.com>
Fri, 2 Oct 2009 06:32:11 +0000 (01:32 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Fri, 2 Oct 2009 06:32:11 +0000 (01:32 -0500)
basis/random/sfmt/sfmt.factor

index 23f4b8ad33248dd332ff5cc89385d9e51785edda..5335e22632bf402666969985033315d250a219c1 100644 (file)
@@ -16,7 +16,6 @@ STRUCT: sfmt-state
     { seed uint }
     { n uint }
     { m uint }
-    { m-n int }
     { ix uint }
     { mask uint-4 }
     { r1 uint-4 }
@@ -53,7 +52,6 @@ M:: sfmt generate ( sfmt -- )
     state n>> 1 - array nth state (>>r2)
     state m>> :> m 
     state n>> :> n 
-    state m-n>> :> m-n
     state mask>> :> mask
 
     n m - >fixnum iota [| i |
@@ -70,7 +68,7 @@ M:: sfmt generate ( sfmt -- )
     m 1 - iota [
         n m - 1 + + >fixnum :> i
         i array nth-unsafe
-        m-n i + array nth-unsafe
+        m n - i + array nth-unsafe
         mask state r1>> state r2>> formula :> r
 
         r i array set-nth-unsafe
@@ -99,7 +97,6 @@ M:: sfmt generate ( sfmt -- )
         swap >>m
         swap >>n
         swap >>seed
-        dup [ m>> ] [ n>> ] bi - >>m-n
         0 >>ix ;
 
 : <sfmt> ( seed n m mask -- sfmt )
@@ -107,7 +104,7 @@ M:: sfmt generate ( sfmt -- )
     sfmt new
         swap >>state
         dup <sfmt-array> [ >>uint-array ] [ >>uint-4-array ] bi*
-        [ generate ] keep ;
+        [ generate ] keep ; inline
 
 : refill-sfmt? ( sfmt -- ? )
     state>> [ ix>> ] [ n>> 4 * ] bi >= ;
@@ -121,8 +118,8 @@ M:: sfmt generate ( sfmt -- )
 PRIVATE>
 
 M: sfmt random-32* ( sfmt -- n )
-    dup refill-sfmt? [ dup generate ] when next ;
+    dup refill-sfmt? [ dup generate ] when next ; inline
 
 : <sfmt-19937> ( seed -- sfmt )
     348 330 uint-4{ HEX: BFFFFFF6 HEX: BFFAFFFF HEX: DDFECB7F HEX: DFFFFFEF }
-    <sfmt> ;
+    <sfmt> ; inline