use crate::field::field::Field; use crate::merkle_tree::MerkleTree; use crate::polynomial::polynomial::PolynomialValues; use crate::util::transpose; struct ListPolynomialCommitment { pub lde_values: Vec>, pub rate_bits: usize, pub merkle_tree: MerkleTree, } impl ListPolynomialCommitment { pub fn new(values: Vec>, rate_bits: usize) -> Self { let lde_values = values .into_iter() .map(|p| p.lde(rate_bits).values) .collect::>(); let merkle_tree = MerkleTree::new(transpose(&lde_values), false); Self { lde_values, rate_bits, merkle_tree, } } }