diff --git a/extra/benchmark/nsieve-bits/nsieve-bits.factor b/extra/benchmark/nsieve-bits/nsieve-bits.factor index 9ccc2d8616..8d56bd935b 100644 --- a/extra/benchmark/nsieve-bits/nsieve-bits.factor +++ b/extra/benchmark/nsieve-bits/nsieve-bits.factor @@ -1,5 +1,5 @@ USING: math math.parser sequences sequences.private kernel -bit-arrays make io ; +bit-arrays make io math.ranges multiline fry locals ; IN: benchmark.nsieve-bits : clear-flags ( step i seq -- ) @@ -13,23 +13,24 @@ IN: benchmark.nsieve-bits 2dup length < [ 2dup nth-unsafe [ over dup 2 * pick clear-flags - rot 1 + -rot ! increment count + [ 1 + ] 2dip ! increment count ] when [ 1 + ] dip (nsieve-bits) ] [ 2drop ] if ; inline recursive : nsieve-bits ( m -- count ) - 0 2 rot 1 + dup set-bits (nsieve-bits) ; + [ 0 2 ] dip 1 + dup set-bits (nsieve-bits) ; : nsieve-bits. ( m -- ) [ "Primes up to " % dup # " " % nsieve-bits # ] "" make - print ; + print ; inline : nsieve-bits-main ( n -- ) - dup 2^ 10000 * nsieve-bits. - dup 1 - 2^ 10000 * nsieve-bits. - 2 - 2^ 10000 * nsieve-bits. ; + [ 2^ 10000 * nsieve-bits. ] + [ 1 - 2^ 10000 * nsieve-bits. ] + [ 2 - 2^ 10000 * nsieve-bits. ] + tri ; : nsieve-bits-main* ( -- ) 11 nsieve-bits-main ; diff --git a/extra/benchmark/nsieve/nsieve.factor b/extra/benchmark/nsieve/nsieve.factor index 646c98f3a4..7c4a655e59 100644 --- a/extra/benchmark/nsieve/nsieve.factor +++ b/extra/benchmark/nsieve/nsieve.factor @@ -13,22 +13,23 @@ IN: benchmark.nsieve 2dup length < [ 2dup nth-unsafe [ over dup 2 * pick clear-flags - rot 1 + -rot ! increment count + [ 1 + ] 2dip ! increment count ] when [ 1 + ] dip (nsieve) ] [ 2drop ] if ; inline recursive : nsieve ( m -- count ) - 0 2 rot 1 + t (nsieve) ; + [ 0 2 ] dip 1 + t (nsieve) ; : nsieve. ( m -- ) [ "Primes up to " % dup # " " % nsieve # ] "" make print ; : nsieve-main ( n -- ) - dup 2^ 10000 * nsieve. - dup 1 - 2^ 10000 * nsieve. - 2 - 2^ 10000 * nsieve. ; + [ 2^ 10000 * nsieve. ] + [ 1 - 2^ 10000 * nsieve. ] + [ 2 - 2^ 10000 * nsieve. ] + tri ; : nsieve-main* ( -- ) 9 nsieve-main ;