35 template <
typename ContainerOverSubrelations,
typename AllEntities,
typename Parameters>
39 const FF& scaling_factor)
42 using CoeffAcc =
typename Accumulator::CoefficientAccumulator;
70 auto u_0 = pow5(w_l + q_l);
71 auto u_1 = pow5(w_r + q_r);
72 auto u_2 = pow5(w_o + q_o);
73 auto u_3 = pow5(w_4 + q_4);
77 auto wp_0 = w_r *
C[0][0] + w_o *
C[0][1] + w_4 *
C[0][2] - w_l_shift;
78 auto wp_1 = w_r *
C[1][0] + w_o *
C[1][1] + w_4 *
C[1][2] - w_r_shift;
79 auto wp_2 = w_r *
C[2][0] + w_o *
C[2][1] + w_4 *
C[2][2] - w_o_shift;
80 auto wp_3 = w_r *
C[3][0] + w_o *
C[3][1] + w_4 *
C[3][2] - w_4_shift;
82 const auto q_by_scaling_m = q_sel * scaling_factor;
83 const auto q_by_scaling =
Accumulator(q_by_scaling_m);
86 auto a0_body = u_0 *
C[0][3] + u_1 *
C[0][4] + u_2 *
C[0][5] + u_3 *
C[0][6] +
Accumulator(wp_0);
87 auto a1_body = u_0 *
C[1][3] + u_1 *
C[1][4] + u_2 *
C[1][5] + u_3 +
Accumulator(wp_1);
88 auto a2_body = u_0 *
C[2][3] + u_1 *
C[2][4] + u_2 *
C[2][5] + u_3 +
Accumulator(wp_2);
89 auto a3_body = u_0 *
C[3][3] + u_1 *
C[3][4] + u_2 *
C[3][5] + u_3 +
Accumulator(wp_3);
DataType & q_poseidon2_quad_internal_terminal()
Terminal variant of the K=4 compressed internal-round relation.
static constexpr std::array< size_t, 4 > SUBRELATION_PARTIAL_LENGTHS
static bool skip(const AllEntities &in)
static void accumulate(ContainerOverSubrelations &evals, const AllEntities &in, const Parameters &, const FF &scaling_factor)
A wrapper for Relations to expose methods used by the Sumcheck prover or verifier to add the contribu...
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
ClosedFormTable closed_form
static const Tables tables