fn get_transition_constraints>()

in air/src/air/mod.rs [248:276]


    fn get_transition_constraints<E: FieldElement<BaseField = Self::BaseField>>(
        &self,
        coefficients: &[(E, E)],
    ) -> Vec<TransitionConstraintGroup<E>> {
        assert_eq!(
            self.num_transition_constraints(),
            coefficients.len(),
            "number of transition constraints must match the number of coefficient tuples"
        );

        // iterate over all transition constraint degrees, and assign each constraint to the
        // appropriate group based on degree
        let context = self.context();
        let mut groups = BTreeMap::new();
        for (i, degree) in context.transition_constraint_degrees.iter().enumerate() {
            let evaluation_degree = degree.get_evaluation_degree(self.trace_length());
            let group = groups.entry(evaluation_degree).or_insert_with(|| {
                TransitionConstraintGroup::new(
                    degree.clone(),
                    self.trace_poly_degree(),
                    self.composition_degree(),
                )
            });
            group.add(i, coefficients[i]);
        }

        // convert from hash map into a vector and return
        groups.into_iter().map(|e| e.1).collect()
    }