Skip to main content

openvm_stark_backend/test_utils/dummy_airs/fib_air/
trace.rs

1use p3_field::Field;
2use p3_matrix::dense::RowMajorMatrix;
3
4use super::columns::NUM_FIBONACCI_COLS;
5
6/// n is number of rows in the trace
7pub fn generate_trace_rows<F: Field>(a: u64, b: u64, n: usize) -> RowMajorMatrix<F> {
8    assert!(n.is_power_of_two());
9
10    let mut rows = vec![vec![F::from_u64(a), F::from_u64(b)]];
11
12    for i in 1..n {
13        rows.push(vec![rows[i - 1][1], rows[i - 1][0] + rows[i - 1][1]]);
14    }
15
16    RowMajorMatrix::new(rows.concat(), NUM_FIBONACCI_COLS)
17}