Mark parts of math.miller-rabin as private
parent
4f42d00769
commit
7716ac276e
|
@ -4,9 +4,9 @@ USING: combinators io locals kernel math math.functions
|
||||||
math.ranges namespaces random sequences hashtables sets ;
|
math.ranges namespaces random sequences hashtables sets ;
|
||||||
IN: math.miller-rabin
|
IN: math.miller-rabin
|
||||||
|
|
||||||
: >even ( n -- int ) dup even? [ 1- ] unless ; foldable
|
<PRIVATE
|
||||||
|
|
||||||
: >odd ( n -- int ) dup even? [ 1+ ] when ; foldable
|
: >odd ( n -- int ) dup even? [ 1+ ] when ; foldable
|
||||||
: next-odd ( m -- n ) dup even? [ 1+ ] [ 2 + ] if ;
|
|
||||||
|
|
||||||
TUPLE: positive-even-expected n ;
|
TUPLE: positive-even-expected n ;
|
||||||
|
|
||||||
|
@ -28,6 +28,10 @@ TUPLE: positive-even-expected n ;
|
||||||
] unless drop
|
] unless drop
|
||||||
] each prime? ] ;
|
] each prime? ] ;
|
||||||
|
|
||||||
|
PRIVATE>
|
||||||
|
|
||||||
|
: next-odd ( m -- n ) dup even? [ 1+ ] [ 2 + ] if ;
|
||||||
|
|
||||||
: miller-rabin* ( n numtrials -- ? )
|
: miller-rabin* ( n numtrials -- ? )
|
||||||
over {
|
over {
|
||||||
{ [ dup 1 <= ] [ 3drop f ] }
|
{ [ dup 1 <= ] [ 3drop f ] }
|
||||||
|
@ -46,11 +50,15 @@ TUPLE: positive-even-expected n ;
|
||||||
|
|
||||||
ERROR: no-relative-prime n ;
|
ERROR: no-relative-prime n ;
|
||||||
|
|
||||||
|
<PRIVATE
|
||||||
|
|
||||||
: (find-relative-prime) ( n guess -- p )
|
: (find-relative-prime) ( n guess -- p )
|
||||||
over 1 <= [ over no-relative-prime ] when
|
over 1 <= [ over no-relative-prime ] when
|
||||||
dup 1 <= [ drop 3 ] when
|
dup 1 <= [ drop 3 ] when
|
||||||
2dup gcd nip 1 > [ 2 + (find-relative-prime) ] [ nip ] if ;
|
2dup gcd nip 1 > [ 2 + (find-relative-prime) ] [ nip ] if ;
|
||||||
|
|
||||||
|
PRIVATE>
|
||||||
|
|
||||||
: find-relative-prime* ( n guess -- p )
|
: find-relative-prime* ( n guess -- p )
|
||||||
#! find a prime relative to n with initial guess
|
#! find a prime relative to n with initial guess
|
||||||
>odd (find-relative-prime) ;
|
>odd (find-relative-prime) ;
|
||||||
|
|
Loading…
Reference in New Issue