24 lines
485 B
Factor
24 lines
485 B
Factor
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
|