fn evaluate_boundary_constraints()

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);
        }
    }