99 const AllEntities& in,
101 const FF& scaling_factor)
106 using CoefficientAccumulator =
typename Accumulator::CoefficientAccumulator;
109 const auto w_1 = CoefficientAccumulator(in.w_l);
110 const auto w_2 = CoefficientAccumulator(in.w_r);
111 const auto w_3 = CoefficientAccumulator(in.w_o);
112 const auto w_4 = CoefficientAccumulator(in.w_4);
114 const auto w_1_shift = CoefficientAccumulator(in.w_l_shift);
115 const auto w_2_shift = CoefficientAccumulator(in.w_r_shift);
116 const auto w_3_shift = CoefficientAccumulator(in.w_o_shift);
117 const auto w_4_shift = CoefficientAccumulator(in.w_4_shift);
119 const auto q_poseidon2_internal_m = CoefficientAccumulator(in.q_poseidon2_internal);
121 const auto c_0_int = CoefficientAccumulator(in.q_l);
123 Accumulator barycentric_term;
126 auto s1 = Accumulator(w_1 + c_0_int);
133 const auto q_pos_by_scaling_m = (q_poseidon2_internal_m * scaling_factor);
134 const auto q_pos_by_scaling = Accumulator(q_pos_by_scaling_m);
136 const auto partial_sum = w_2 + w_3 + w_4;
137 const auto scaled_u1 = u1 * q_pos_by_scaling;
140 barycentric_term = scaled_u1 *
D1_plus_1;
141 auto monomial_term = partial_sum - w_1_shift;
142 barycentric_term += Accumulator(monomial_term * q_pos_by_scaling_m);
146 auto v2_m = w_2 *
D2 + partial_sum - w_2_shift;
147 barycentric_term = Accumulator(v2_m * q_pos_by_scaling_m);
148 barycentric_term += scaled_u1;
152 auto v3_m = w_3 *
D3 + partial_sum - w_3_shift;
153 barycentric_term = Accumulator(v3_m * q_pos_by_scaling_m);
154 barycentric_term += scaled_u1;
158 auto v4_m = w_4 *
D4 + partial_sum - w_4_shift;
159 barycentric_term = Accumulator(v4_m * q_pos_by_scaling_m);
160 barycentric_term += scaled_u1;