in prover/src/composer/mod.rs [228:247]
fn merge_trace_compositions<E: FieldElement>(mut polys: Vec<Vec<E>>, divisors: Vec<E>) -> Vec<E> {
// divide all polynomials by their corresponding divisor
iter_mut!(polys).zip(divisors).for_each(|(poly, divisor)| {
// skip empty polynomials; this could happen for conjugate composition polynomial (T3)
// when extension field is not enabled.
if !poly.is_empty() {
polynom::syn_div_in_place(poly, 1, divisor);
}
});
// add all polynomials together into a single polynomial
let mut result = polys.remove(0);
for poly in polys.iter() {
if !poly.is_empty() {
add_in_place(&mut result, poly);
}
}
result
}