103 const AllEntities& in,
105 const FF& scaling_factor)
110 using CoefficientAccumulator =
typename Accumulator::CoefficientAccumulator;
113 const auto w_1 = CoefficientAccumulator(in.w_l);
114 const auto w_2 = CoefficientAccumulator(in.w_r);
115 const auto w_3 = CoefficientAccumulator(in.w_o);
116 const auto w_4 = CoefficientAccumulator(in.w_4);
118 const auto w_1_shift = CoefficientAccumulator(in.w_l_shift);
119 const auto w_2_shift = CoefficientAccumulator(in.w_r_shift);
120 const auto w_3_shift = CoefficientAccumulator(in.w_o_shift);
121 const auto w_4_shift = CoefficientAccumulator(in.w_4_shift);
123 const auto q_poseidon2_internal_m = CoefficientAccumulator(in.q_poseidon2_internal);
125 const auto c_0_int = CoefficientAccumulator(in.q_l);
127 Accumulator barycentric_term;
130 auto s1 = Accumulator(w_1 + c_0_int);
137 const auto q_pos_by_scaling_m = (q_poseidon2_internal_m * scaling_factor);
138 const auto q_pos_by_scaling = Accumulator(q_pos_by_scaling_m);
140 const auto partial_sum = w_2 + w_3 + w_4;
141 const auto scaled_u1 = u1 * q_pos_by_scaling;
144 barycentric_term = scaled_u1 *
D1;
145 auto monomial_term = partial_sum - w_1_shift;
146 barycentric_term += Accumulator(monomial_term * q_pos_by_scaling_m);
150 auto v2_m = w_2 *
D2_minus_1 + partial_sum - w_2_shift;
151 barycentric_term = Accumulator(v2_m * q_pos_by_scaling_m);
152 barycentric_term += scaled_u1;
156 auto v3_m = w_3 *
D3_minus_1 + partial_sum - w_3_shift;
157 barycentric_term = Accumulator(v3_m * q_pos_by_scaling_m);
158 barycentric_term += scaled_u1;
162 auto v4_m = w_4 *
D4_minus_1 + partial_sum - w_4_shift;
163 barycentric_term = Accumulator(v4_m * q_pos_by_scaling_m);
164 barycentric_term += scaled_u1;