use alloc::vec::Vec; use itertools::Itertools; use plonky2::field::polynomial::PolynomialValues; use plonky2::field::types::Field; use plonky2::util::transpose; /// A helper function to transpose a row-wise trace and put it in the format that `prove` expects. pub fn trace_rows_to_poly_values( trace_rows: Vec<[F; COLUMNS]>, ) -> Vec> { let trace_row_vecs = trace_rows.into_iter().map(|row| row.to_vec()).collect_vec(); let trace_col_vecs: Vec> = transpose(&trace_row_vecs); trace_col_vecs .into_iter() .map(|column| PolynomialValues::new(column)) .collect() }