From 907e401542b666c1eb401549133840837c8e5978 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Fri, 2 Oct 2009 01:32:11 -0500 Subject: [PATCH] remove m-n-as-a-slot --- basis/random/sfmt/sfmt.factor | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/basis/random/sfmt/sfmt.factor b/basis/random/sfmt/sfmt.factor index 23f4b8ad33..5335e22632 100644 --- a/basis/random/sfmt/sfmt.factor +++ b/basis/random/sfmt/sfmt.factor @@ -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 ; : ( seed n m mask -- sfmt ) @@ -107,7 +104,7 @@ M:: sfmt generate ( sfmt -- ) sfmt new swap >>state dup [ >>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 : ( seed -- sfmt ) 348 330 uint-4{ HEX: BFFFFFF6 HEX: BFFAFFFF HEX: DDFECB7F HEX: DFFFFFEF } - ; + ; inline