]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/benchmark/nsieve-bits/nsieve-bits.factor
factor: trim using lists
[factor.git] / extra / benchmark / nsieve-bits / nsieve-bits.factor
index ddb70972b9df1757d47e6abdd71c9475a167c801..9d4069e6def9fff0e42e5940bcde97f59fa53ec1 100644 (file)
@@ -1,36 +1,37 @@
-IN: benchmark.nsieve-bits
 USING: math math.parser sequences sequences.private kernel
 bit-arrays make io ;
+IN: benchmark.nsieve-bits
 
 : clear-flags ( step i seq -- )
     2dup length >= [
         3drop
     ] [
-        f 2over set-nth-unsafe >r over + r> clear-flags
+        f 2over set-nth-unsafe [ over + ] dip clear-flags
     ] if ; inline recursive
 
 : (nsieve-bits) ( count i seq -- count )
     2dup length < [
         2dup nth-unsafe [
             over dup 2 * pick clear-flags
-            rot 1+ -rot ! increment count
-        ] when >r 1+ r> (nsieve-bits)
+            [ 1 + ] 2dip ! increment count
+        ] when [ 1 + ] dip (nsieve-bits)
     ] [
         2drop
     ] if ; inline recursive
 
 : nsieve-bits ( m -- count )
-    0 2 rot 1+ <bit-array> dup set-bits (nsieve-bits) ;
+    [ 0 2 ] dip 1 + <bit-array> 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 ;
+: nsieve-bits-benchmark ( -- ) 11 nsieve-bits-main ;
 
-MAIN: nsieve-bits-main*
+MAIN: nsieve-bits-benchmark