101 const AllEntities& in,
103 const FF& scaling_factor)
108 using CoefficientAccumulator =
typename Accumulator::CoefficientAccumulator;
111 const auto w_1 = CoefficientAccumulator(in.w_l);
112 const auto w_2 = CoefficientAccumulator(in.w_r);
113 const auto w_3 = CoefficientAccumulator(in.w_o);
114 const auto w_4 = CoefficientAccumulator(in.w_4);
116 const auto w_1_shift = CoefficientAccumulator(in.w_l_shift);
117 const auto w_2_shift = CoefficientAccumulator(in.w_r_shift);
118 const auto w_3_shift = CoefficientAccumulator(in.w_o_shift);
119 const auto w_4_shift = CoefficientAccumulator(in.w_4_shift);
121 const auto q_poseidon2_internal_m = CoefficientAccumulator(in.q_poseidon2_internal);
123 const auto c_0_int = CoefficientAccumulator(in.q_l);
125 Accumulator barycentric_term;
128 auto s1 = Accumulator(w_1 + c_0_int);
135 const auto q_pos_by_scaling_m = (q_poseidon2_internal_m * scaling_factor);
136 const auto q_pos_by_scaling = Accumulator(q_pos_by_scaling_m);
138 const auto partial_sum = w_2 + w_3 + w_4;
139 const auto scaled_u1 = u1 * q_pos_by_scaling;
142 barycentric_term = scaled_u1 *
D1_plus_1;
143 auto monomial_term = partial_sum - w_1_shift;
144 barycentric_term += Accumulator(monomial_term * q_pos_by_scaling_m);
148 auto v2_m = w_2 *
D2 + partial_sum - w_2_shift;
149 barycentric_term = Accumulator(v2_m * q_pos_by_scaling_m);
150 barycentric_term += scaled_u1;
154 auto v3_m = w_3 *
D3 + partial_sum - w_3_shift;
155 barycentric_term = Accumulator(v3_m * q_pos_by_scaling_m);
156 barycentric_term += scaled_u1;
160 auto v4_m = w_4 *
D4 + partial_sum - w_4_shift;
161 barycentric_term = Accumulator(v4_m * q_pos_by_scaling_m);
162 barycentric_term += scaled_u1;