fib n = fi n 1 1 fi 1 x y = x fi a x y = fi (a-1) (x+y) x ffib n = ffi n 1 1 1 0 1 0 ffi 1 a b c d x y = (a*x + b*y) ffi n a b c d x y = if odd n then ffi (div n 2) (a*a + b*c) (a*b + b*d) (a*c + c*d) (d*d + b*c) (a*x + b*y) (c*x + d*y) else ffi (div n 2) (a*a + b*c) (a*b + b*d) (a*c + c*d) (d*d + b*c) x y