From 6f5efb83f2c07b5cbcaa96af34671e5a8688fcc2 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Tue, 26 Mar 2013 11:47:52 -0700 Subject: [PATCH] benchmark.fib7: adding matrix fibonacci benchmark. --- extra/benchmark/fib7/fib7.factor | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 extra/benchmark/fib7/fib7.factor diff --git a/extra/benchmark/fib7/fib7.factor b/extra/benchmark/fib7/fib7.factor new file mode 100644 index 0000000000..9e0dab0fd4 --- /dev/null +++ b/extra/benchmark/fib7/fib7.factor @@ -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