aboutsummaryrefslogtreecommitdiff
path: root/guests/fibonacci_matrix/src/lib.rs
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-03-05 09:20:40 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-04-10 17:29:17 +0300
commita579c8269704606752892bfab120ecd3bd3cf20d (patch)
tree8aaf5a95b2c9ec76060f7f91b9704ac0b1aa15ca /guests/fibonacci_matrix/src/lib.rs
parentf74b8238b25d4b063f7e207e7e2816268fabb973 (diff)
downloadzkVMs-benchmarks-a579c8269704606752892bfab120ecd3bd3cf20d.tar
zkVMs-benchmarks-a579c8269704606752892bfab120ecd3bd3cf20d.tar.gz
zkVMs-benchmarks-a579c8269704606752892bfab120ecd3bd3cf20d.zip
feat(guests): Add fibonacci implementation using matrix exponentiation
Originally tried by Dimo Dimov Co-authored-by: Dimo99 <dimodimov1999@gmail.com>
Diffstat (limited to 'guests/fibonacci_matrix/src/lib.rs')
-rw-r--r--guests/fibonacci_matrix/src/lib.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/guests/fibonacci_matrix/src/lib.rs b/guests/fibonacci_matrix/src/lib.rs
new file mode 100644
index 0000000..bc20dd2
--- /dev/null
+++ b/guests/fibonacci_matrix/src/lib.rs
@@ -0,0 +1,10 @@
+#![cfg_attr(feature = "no_std", no_std)]
+
+use nalgebra::Matrix2;
+
+#[guests_macro::proving_entrypoint]
+pub fn main(n: u8, fN: u64) -> bool {
+ let r = Matrix2::new(1, 1, 1, 0).pow((n - 1).into())[(0, 0)];
+
+ r == fN
+}