11 lines
235 B
Text
11 lines
235 B
Text
fibonacci(n) := fibonacciHelper([[1,0],[0,1]], n);
|
|
|
|
fibonacciHelper(M(2), n) :=
|
|
let
|
|
N := [[1,1],[1,0]];
|
|
in
|
|
M[1,1] when n <= 1
|
|
else
|
|
fibonacciHelper(matmul(M, N), n - 1);
|
|
|
|
matmul(A(2), B(2)) [i,j] := sum( A[i,all] * B[all,j] );
|