From 9f46b534e91523b79e118245ae6f6af76dccb81c Mon Sep 17 00:00:00 2001 From: Eric Mertens Date: Tue, 15 Apr 2008 01:00:37 -0700 Subject: [PATCH] export in random.blum-blum-shub --- extra/project-euler/164/164.factor | 2 +- extra/random/blum-blum-shub/blum-blum-shub.factor | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/extra/project-euler/164/164.factor b/extra/project-euler/164/164.factor index 67397593bd..bf1f5dcf9b 100644 --- a/extra/project-euler/164/164.factor +++ b/extra/project-euler/164/164.factor @@ -30,4 +30,4 @@ IN: project-euler.164 PRIVATE> : euler164 ( -- n ) - init-table 19 [ next-table ] times values sum ; \ No newline at end of file + init-table 19 [ next-table ] times values sum ; diff --git a/extra/random/blum-blum-shub/blum-blum-shub.factor b/extra/random/blum-blum-shub/blum-blum-shub.factor index db8fe540e5..e60990075c 100755 --- a/extra/random/blum-blum-shub/blum-blum-shub.factor +++ b/extra/random/blum-blum-shub/blum-blum-shub.factor @@ -12,17 +12,16 @@ TUPLE: blum-blum-shub x n ; : generate-bbs-primes ( numbits -- p q ) [ [ random-prime ] curry [ 4 mod 3 = ] generate ] dup bi ; +: next-bbs-bit ( bbs -- bit ) + [ [ x>> 2 ] [ n>> ] bi ^mod dup ] keep (>>x) 1 bitand ; + +PRIVATE> + : ( numbits -- blum-blum-shub ) generate-bbs-primes * [ find-relative-prime ] keep blum-blum-shub boa ; -: next-bbs-bit ( bbs -- bit ) - [ [ x>> 2 ] [ n>> ] bi ^mod ] keep - over >>x drop 1 bitand ; - -PRIVATE> - M: blum-blum-shub random-32* ( bbs -- r ) 0 32 rot [ next-bbs-bit swap 1 shift bitor ] curry times ;