add fix to evm

This commit is contained in:
Sladuca 2022-08-19 17:53:12 -04:00
parent ff961a34a3
commit 3eadc27be5
2 changed files with 11 additions and 8 deletions

View File

@ -44,12 +44,8 @@ impl<P: PackedField> ConstraintConsumer<P> {
}
}
// TODO: Do this correctly.
pub fn accumulators(self) -> Vec<P::Scalar> {
pub fn accumulators(self) -> Vec<P> {
self.constraint_accs
.into_iter()
.map(|acc| acc.as_slice()[0])
.collect()
}
/// Add one constraint valid on all rows except the last.

View File

@ -388,7 +388,7 @@ where
let quotient_values = (0..size)
.into_par_iter()
.step_by(P::WIDTH)
.map(|i_start| {
.flat_map_iter(|i_start| {
let i_next_start = (i_start + next_step) % size;
let i_range = i_start..i_start + P::WIDTH;
@ -444,11 +444,18 @@ where
);
let mut constraints_evals = consumer.accumulators();
// 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 {
*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<_>>();