]> gitweb.factorcode.org Git - factor.git/commitdiff
benchmark.fib7: adding matrix fibonacci benchmark.
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 26 Mar 2013 18:47:52 +0000 (11:47 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 26 Mar 2013 18:47:52 +0000 (11:47 -0700)
extra/benchmark/fib7/fib7.factor [new file with mode: 0644]

diff --git a/extra/benchmark/fib7/fib7.factor b/extra/benchmark/fib7/fib7.factor
new file mode 100644 (file)
index 0000000..9e0dab0
--- /dev/null
@@ -0,0 +1,23 @@
+USING: kernel locals math math.parser sequences ;
+IN: benchmark.fib7
+
+:: matrix-fib ( m -- n )
+    m 0 >= [ m throw ] unless
+    m 2 >base [ CHAR: 1 = ] { } map-as :> bits
+    1 :> a! 0 :> b! 1 :> c!
+    bits [
+        [
+            a c + b *
+            b sq c sq +
+        ] [
+            a sq b sq +
+            a c + b *
+        ] if b! a! a b + c!
+    ] each b ;
+
+: fib7-benchmark ( -- )
+    100 [
+        100,000 matrix-fib log2 69423 assert=
+    ] times ;
+
+MAIN: fib7-benchmark