54 const AllEntities& in,
56 const FF& scaling_factor)
59 using CoefficientAccumulator =
typename Accumulator::CoefficientAccumulator;
61 auto w_l_m = CoefficientAccumulator(in.w_l);
62 auto w_l_shift_m = CoefficientAccumulator(in.w_l_shift);
63 auto w_r_shift_m = CoefficientAccumulator(in.w_r_shift);
64 auto w_o_shift_m = CoefficientAccumulator(in.w_o_shift);
65 auto w_4_shift_m = CoefficientAccumulator(in.w_4_shift);
66 auto q_l_m = CoefficientAccumulator(in.q_l);
67 auto q_poseidon2_internal_m = CoefficientAccumulator(in.q_poseidon2_internal);
70 auto s1 = Accumulator(w_l_m + q_l_m);
76 auto u2_m = CoefficientAccumulator(in.w_r);
77 auto u3_m = CoefficientAccumulator(in.w_o);
78 auto u4_m = CoefficientAccumulator(in.w_4);
80 auto q_pos_by_scaling_m = (q_poseidon2_internal_m * scaling_factor);
81 auto q_pos_by_scaling = Accumulator(q_pos_by_scaling_m);
83 auto partial_sum = u2_m + u3_m + u4_m;
84 auto scaled_u1 = u1 * q_pos_by_scaling;
87 auto barycentric_term = scaled_u1 * (diagonal_term);
88 auto monomial_term = partial_sum;
89 monomial_term -= w_l_shift_m;
90 barycentric_term += Accumulator(monomial_term * q_pos_by_scaling_m);
96 barycentric_term = Accumulator(v2_m * q_pos_by_scaling_m);
97 barycentric_term += scaled_u1;
103 barycentric_term = Accumulator(v3_m * q_pos_by_scaling_m);
104 barycentric_term += scaled_u1;
111 barycentric_term = Accumulator(v4_m * q_pos_by_scaling_m);
112 barycentric_term += scaled_u1;