in prover/src/constraints/evaluator.rs [232:253]
fn evaluate_boundary_constraints(
&self,
state: &[A::BaseField],
x: A::BaseField,
step: usize,
result: &mut [E],
) {
// compute the adjustment degree outside of the group so that we can re-use
// it for groups which have the same adjustment degree
let mut degree_adjustment = self.boundary_constraints[0].degree_adjustment;
let mut xp = E::from(x.exp(degree_adjustment.into()));
for (group, result) in self.boundary_constraints.iter().zip(result.iter_mut()) {
// recompute adjustment degree only when it has changed
if group.degree_adjustment != degree_adjustment {
degree_adjustment = group.degree_adjustment;
xp = E::from(x.exp(degree_adjustment.into()));
}
// evaluate the group and save the result
*result = group.evaluate(state, step, x, xp);
}
}