mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-05 23:33:07 +00:00
fix lost evals when P::WIDTH > 0
This commit is contained in:
parent
68de3ee0c6
commit
ff961a34a3
@ -44,12 +44,8 @@ impl<P: PackedField> ConstraintConsumer<P> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Do this correctly.
|
pub fn accumulators(self) -> Vec<P> {
|
||||||
pub fn accumulators(self) -> Vec<P::Scalar> {
|
|
||||||
self.constraint_accs
|
self.constraint_accs
|
||||||
.into_iter()
|
|
||||||
.map(|acc| acc.as_slice()[0])
|
|
||||||
.collect()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Add one constraint valid on all rows except the last.
|
/// Add one constraint valid on all rows except the last.
|
||||||
|
|||||||
@ -258,7 +258,7 @@ where
|
|||||||
let quotient_values = (0..size)
|
let quotient_values = (0..size)
|
||||||
.into_par_iter()
|
.into_par_iter()
|
||||||
.step_by(P::WIDTH)
|
.step_by(P::WIDTH)
|
||||||
.map(|i_start| {
|
.flat_map_iter(|i_start| {
|
||||||
let i_next_start = (i_start + next_step) % size;
|
let i_next_start = (i_start + next_step) % size;
|
||||||
let i_range = i_start..i_start + P::WIDTH;
|
let i_range = i_start..i_start + P::WIDTH;
|
||||||
|
|
||||||
@ -292,13 +292,22 @@ where
|
|||||||
permutation_check_data,
|
permutation_check_data,
|
||||||
&mut consumer,
|
&mut consumer,
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut constraints_evals = consumer.accumulators();
|
let mut constraints_evals = consumer.accumulators();
|
||||||
// We divide the constraints evaluations by `Z_H(x)`.
|
// We divide the constraints evaluations by `Z_H(x)`.
|
||||||
let denominator_inv = z_h_on_coset.eval_inverse_packed(i_start);
|
let denominator_inv: P = z_h_on_coset.eval_inverse_packed(i_start);
|
||||||
|
|
||||||
for eval in &mut constraints_evals {
|
for eval in &mut constraints_evals {
|
||||||
*eval *= denominator_inv;
|
*eval *= denominator_inv;
|
||||||
}
|
}
|
||||||
constraints_evals
|
|
||||||
|
let num_challenges = alphas.len();
|
||||||
|
|
||||||
|
(0..P::WIDTH)
|
||||||
|
.into_iter()
|
||||||
|
.map(move |i| {
|
||||||
|
(0..num_challenges).map(|j| constraints_evals[j].as_slice()[i]).collect()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user