diff --git a/src/plonk/circuit_data.rs b/src/plonk/circuit_data.rs index 9ba05a87..869543af 100644 --- a/src/plonk/circuit_data.rs +++ b/src/plonk/circuit_data.rs @@ -190,8 +190,8 @@ pub struct CommonCircuitData, const D: usize> { /// The `{k_i}` valued used in `S_ID_i` in Plonk's permutation argument. pub(crate) k_is: Vec, - /// The number of partial products needed to compute the `Z` polynomials and the number - /// of partial products needed to compute the final product. + /// The number of partial products needed to compute the `Z` polynomials and + /// the number of original elements consumed in `partial_products()`. pub(crate) num_partial_products: (usize, usize), /// A digest of the "circuit" (i.e. the instance, minus public inputs), which can be used to diff --git a/src/plonk/prover.rs b/src/plonk/prover.rs index 22f9411c..6c57217c 100644 --- a/src/plonk/prover.rs +++ b/src/plonk/prover.rs @@ -17,7 +17,7 @@ use crate::plonk::vanishing_poly::eval_vanishing_poly_base_batch; use crate::plonk::vars::EvaluationVarsBase; use crate::polynomial::polynomial::{PolynomialCoeffs, PolynomialValues}; use crate::timed; -use crate::util::partial_products::{check_partial_products, partial_products}; +use crate::util::partial_products::partial_products; use crate::util::timing::TimingTree; use crate::util::{log2_ceil, transpose}; diff --git a/src/util/partial_products.rs b/src/util/partial_products.rs index 38177de8..1b3821b6 100644 --- a/src/util/partial_products.rs +++ b/src/util/partial_products.rs @@ -1,11 +1,7 @@ -use std::iter::Product; -use std::ops::{MulAssign, Sub}; - use crate::field::extension_field::target::ExtensionTarget; use crate::field::extension_field::Extendable; use crate::field::field_types::{Field, RichField}; use crate::plonk::circuit_builder::CircuitBuilder; -use crate::util::ceil_div_usize; /// Compute partial products of the original vector `v` such that all products consist of `max_degree` /// or less elements. This is done until we've computed the product `P` of all elements in the vector. @@ -38,7 +34,7 @@ pub fn num_partial_products(n: usize, max_degree: usize) -> (usize, usize) { /// Checks that the partial products of `v` are coherent with those in `partials` by only computing /// products of size `max_degree` or less. -pub fn check_partial_products(v: &[F], mut partials: &[F], max_degree: usize) -> Vec { +pub fn check_partial_products(v: &[F], partials: &[F], max_degree: usize) -> Vec { debug_assert!(max_degree > 1); let mut partials = partials.iter(); let mut res = Vec::new(); @@ -86,8 +82,6 @@ pub fn check_partial_products_recursively, const D: #[cfg(test)] mod tests { - use num::Zero; - use super::*; use crate::field::goldilocks_field::GoldilocksField;