Updating contrib/math/ for latest changes

darcs
slava 2006-06-15 05:36:48 +00:00
parent 7725d92f26
commit 59c64064a7
2 changed files with 8 additions and 2 deletions

View File

@ -1,7 +1,6 @@
IN: math-contrib IN: math-contrib
USING: kernel sequences errors namespaces math lists vectors errors prettyprint ; USING: kernel sequences errors namespaces math vectors errors prettyprint io inspector ;
USING: io inspector ;
: setup-range ( from to -- frange ) : setup-range ( from to -- frange )
step-size get swap <frange> ; step-size get swap <frange> ;

View File

@ -13,6 +13,13 @@ USING: errors kernel sequences math sequences-internals namespaces arrays ;
gcd 1 = [ "Non-trivial divisor found" throw ] unless ; gcd 1 = [ "Non-trivial divisor found" throw ] unless ;
foldable foldable
: each-bit ( n quot -- | quot: 0/1 -- )
over zero? pick -1 number= or [
2drop
] [
2dup >r >r >r 1 bitand r> call r> -1 shift r> each-bit
] if ; inline
: (^mod) ( n z w -- z^w ) : (^mod) ( n z w -- z^w )
1 swap [ 1 swap [
1 number= [ dupd * pick mod ] when >r sq over mod r> 1 number= [ dupd * pick mod ] when >r sq over mod r>