mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-08 16:53:07 +00:00
Comments and minor refactor in eval_vanish*
This commit is contained in:
parent
90bdb5796c
commit
a3f473a073
@ -74,6 +74,8 @@ pub(crate) fn eval_vanishing_poly<F: Extendable<D>, const D: usize>(
|
|||||||
alphas: &[F],
|
alphas: &[F],
|
||||||
) -> Vec<F::Extension> {
|
) -> Vec<F::Extension> {
|
||||||
let max_degree = common_data.max_filtered_constraint_degree;
|
let max_degree = common_data.max_filtered_constraint_degree;
|
||||||
|
let (num_prods, final_num_prod) = common_data.num_partial_products;
|
||||||
|
|
||||||
let constraint_terms =
|
let constraint_terms =
|
||||||
evaluate_gate_constraints(&common_data.gates, common_data.num_gate_constraints, vars);
|
evaluate_gate_constraints(&common_data.gates, common_data.num_gate_constraints, vars);
|
||||||
|
|
||||||
@ -105,25 +107,33 @@ pub(crate) fn eval_vanishing_poly<F: Extendable<D>, const D: usize>(
|
|||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
let (num_prods, final_num_prod) = common_data.num_partial_products;
|
// The partial products considered for this iteration of `i`.
|
||||||
|
let current_partial_products =
|
||||||
|
&partial_products[2 * i * num_prods..(2 * i + 2) * num_prods];
|
||||||
|
// The partial products for the numerator are in the first `num_prods` elements.
|
||||||
|
let numerator_partial_products = ¤t_partial_products[..num_prods];
|
||||||
|
// The partial products for the denominator are in the last `num_prods` elements.
|
||||||
|
let denominator_partial_products = ¤t_partial_products[num_prods..];
|
||||||
|
// Check the numerator partial products.
|
||||||
vanishing_partial_products_terms.extend(check_partial_products(
|
vanishing_partial_products_terms.extend(check_partial_products(
|
||||||
&numerator_values,
|
&numerator_values,
|
||||||
&partial_products[2 * i * num_prods..(2 * i + 1) * num_prods],
|
numerator_partial_products,
|
||||||
max_degree,
|
max_degree,
|
||||||
));
|
));
|
||||||
|
// Check the denominator partial products.
|
||||||
vanishing_partial_products_terms.extend(check_partial_products(
|
vanishing_partial_products_terms.extend(check_partial_products(
|
||||||
&denominator_values,
|
&denominator_values,
|
||||||
&partial_products[(2 * i + 1) * num_prods..(2 * i + 2) * num_prods],
|
denominator_partial_products,
|
||||||
max_degree,
|
max_degree,
|
||||||
));
|
));
|
||||||
|
|
||||||
let f_prime: F::Extension = partial_products
|
// The numerator final product is the product of the last `final_num_prod` elements.
|
||||||
[(2 * i + 1) * num_prods - final_num_prod..(2 * i + 1) * num_prods]
|
let f_prime: F::Extension = numerator_partial_products[num_prods - final_num_prod..]
|
||||||
.iter()
|
.iter()
|
||||||
.copied()
|
.copied()
|
||||||
.product();
|
.product();
|
||||||
let g_prime: F::Extension = partial_products
|
// The denominator final product is the product of the last `final_num_prod` elements.
|
||||||
[(2 * i + 2) * num_prods - final_num_prod..(2 * i + 2) * num_prods]
|
let g_prime: F::Extension = denominator_partial_products[num_prods - final_num_prod..]
|
||||||
.iter()
|
.iter()
|
||||||
.copied()
|
.copied()
|
||||||
.product();
|
.product();
|
||||||
@ -158,6 +168,8 @@ pub(crate) fn eval_vanishing_poly_base<F: Extendable<D>, const D: usize>(
|
|||||||
z_h_on_coset: &ZeroPolyOnCoset<F>,
|
z_h_on_coset: &ZeroPolyOnCoset<F>,
|
||||||
) -> Vec<F> {
|
) -> Vec<F> {
|
||||||
let max_degree = common_data.max_filtered_constraint_degree;
|
let max_degree = common_data.max_filtered_constraint_degree;
|
||||||
|
let (num_prods, final_num_prod) = common_data.num_partial_products;
|
||||||
|
|
||||||
let constraint_terms =
|
let constraint_terms =
|
||||||
evaluate_gate_constraints_base(&common_data.gates, common_data.num_gate_constraints, vars);
|
evaluate_gate_constraints_base(&common_data.gates, common_data.num_gate_constraints, vars);
|
||||||
|
|
||||||
@ -189,25 +201,33 @@ pub(crate) fn eval_vanishing_poly_base<F: Extendable<D>, const D: usize>(
|
|||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
let (num_prods, final_num_prod) = common_data.num_partial_products;
|
// The partial products considered for this iteration of `i`.
|
||||||
|
let current_partial_products =
|
||||||
|
&partial_products[2 * i * num_prods..(2 * i + 2) * num_prods];
|
||||||
|
// The partial products for the numerator are in the first `num_prods` elements.
|
||||||
|
let numerator_partial_products = ¤t_partial_products[..num_prods];
|
||||||
|
// The partial products for the denominator are in the last `num_prods` elements.
|
||||||
|
let denominator_partial_products = ¤t_partial_products[num_prods..];
|
||||||
|
// Check the numerator partial products.
|
||||||
vanishing_partial_products_terms.extend(check_partial_products(
|
vanishing_partial_products_terms.extend(check_partial_products(
|
||||||
&numerator_values,
|
&numerator_values,
|
||||||
&partial_products[2 * i * num_prods..(2 * i + 1) * num_prods],
|
numerator_partial_products,
|
||||||
max_degree,
|
max_degree,
|
||||||
));
|
));
|
||||||
|
// Check the denominator partial products.
|
||||||
vanishing_partial_products_terms.extend(check_partial_products(
|
vanishing_partial_products_terms.extend(check_partial_products(
|
||||||
&denominator_values,
|
&denominator_values,
|
||||||
&partial_products[(2 * i + 1) * num_prods..(2 * i + 2) * num_prods],
|
denominator_partial_products,
|
||||||
max_degree,
|
max_degree,
|
||||||
));
|
));
|
||||||
|
|
||||||
let f_prime: F = partial_products
|
// The numerator final product is the product of the last `final_num_prod` elements.
|
||||||
[(2 * i + 1) * num_prods - final_num_prod..(2 * i + 1) * num_prods]
|
let f_prime: F = numerator_partial_products[num_prods - final_num_prod..]
|
||||||
.iter()
|
.iter()
|
||||||
.copied()
|
.copied()
|
||||||
.product();
|
.product();
|
||||||
let g_prime: F = partial_products
|
// The denominator final product is the product of the last `final_num_prod` elements.
|
||||||
[(2 * i + 2) * num_prods - final_num_prod..(2 * i + 2) * num_prods]
|
let g_prime: F = denominator_partial_products[num_prods - final_num_prod..]
|
||||||
.iter()
|
.iter()
|
||||||
.copied()
|
.copied()
|
||||||
.product();
|
.product();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user