diff --git a/src/prover.rs b/src/prover.rs index 765ea01..a0d0800 100644 --- a/src/prover.rs +++ b/src/prover.rs @@ -2,7 +2,7 @@ use ff::{PrimeField, BatchInvert}; use halo2::arithmetic::lagrange_interpolate; use itertools::Itertools; -use crate::{witness::{ProtostarWtns, ProtostarLhsWtns}, gate::Gate, circuit::PolyOp, constraint_system::{ProtoGalaxyConstraintSystem, Visibility}, utils::{cross_terms_combination::{combine_cross_terms, self, EvalLayout}, field_precomp::FieldUtils, inv_lagrange_prod}, gadgets::range::lagrange_choice}; +use crate::{witness::ProtostarLhsWtns, gate::Gate, circuit::PolyOp, constraint_system::{ProtoGalaxyConstraintSystem, Visibility}, utils::{cross_terms_combination::{combine_cross_terms, EvalLayout}, field_precomp::FieldUtils}}; pub struct ProtoGalaxyProver { @@ -61,7 +61,7 @@ impl ProtoGalaxyProver degrees.iter().map(|d| d.iter().map(|d| Vec::with_capacity(d + 1)).collect_vec()).collect_vec() } - fn fill_variable_combinations<F: PrimeField + FieldUtils>(&self, mut storage: &mut Vec<Vec<Vec<F>>>, degrees: &Vec<Vec<usize>>, a: &Vec<Vec<F>>, b: &Vec<Vec<F>>) { + fn fill_variable_combinations<F: PrimeField + FieldUtils>(&self, storage: &mut Vec<Vec<Vec<F>>>, degrees: &Vec<Vec<usize>>, a: &Vec<Vec<F>>, b: &Vec<Vec<F>>) { storage.iter_mut().zip_eq(degrees.iter()).zip_eq(a.iter().zip_eq(b.iter())).map(|((s, d), (a, b))| { s.iter_mut().zip_eq(d.iter()).zip_eq(a.iter().zip_eq(b.iter())).map(|((res, d), (a, b))| { if *d != 0 { // min gate degree here is 2 (were iterating over nonlinear)