27 template <
typename AllEntities>
inline static bool skip(
const AllEntities& in)
31 return (in.z_perm - in.z_perm_shift).is_zero();
37 template <
typename Accumulator,
typename AllEntities,
typename Parameters>
40 using View =
typename Accumulator::View;
43 auto interleaved_range_constraints_0 = View(in.interleaved_range_constraints_0);
44 auto interleaved_range_constraints_1 = View(in.interleaved_range_constraints_1);
45 auto interleaved_range_constraints_2 = View(in.interleaved_range_constraints_2);
46 auto interleaved_range_constraints_3 = View(in.interleaved_range_constraints_3);
48 auto ordered_extra_range_constraints_numerator = View(in.ordered_extra_range_constraints_numerator);
50 auto lagrange_masking = View(in.lagrange_masking);
51 const auto& gamma = ParameterView(params.gamma);
52 const auto& beta = ParameterView(params.beta);
53 return (interleaved_range_constraints_0 + lagrange_masking * beta + gamma) *
54 (interleaved_range_constraints_1 + lagrange_masking * beta + gamma) *
55 (interleaved_range_constraints_2 + lagrange_masking * beta + gamma) *
56 (interleaved_range_constraints_3 + lagrange_masking * beta + gamma) *
57 (ordered_extra_range_constraints_numerator + lagrange_masking * beta + gamma);
60 template <
typename Accumulator,
typename AllEntities,
typename Parameters>
63 using View =
typename Accumulator::View;
66 auto ordered_range_constraints_0 = View(in.ordered_range_constraints_0);
67 auto ordered_range_constraints_1 = View(in.ordered_range_constraints_1);
68 auto ordered_range_constraints_2 = View(in.ordered_range_constraints_2);
69 auto ordered_range_constraints_3 = View(in.ordered_range_constraints_3);
70 auto ordered_range_constraints_4 = View(in.ordered_range_constraints_4);
72 auto lagrange_masking = View(in.lagrange_masking);
74 const auto& gamma = ParameterView(params.gamma);
75 const auto& beta = ParameterView(params.beta);
76 return (ordered_range_constraints_0 + lagrange_masking * beta + gamma) *
77 (ordered_range_constraints_1 + lagrange_masking * beta + gamma) *
78 (ordered_range_constraints_2 + lagrange_masking * beta + gamma) *
79 (ordered_range_constraints_3 + lagrange_masking * beta + gamma) *
80 (ordered_range_constraints_4 + lagrange_masking * beta + gamma);
105 template <
typename ContainerOverSubrelations,
typename AllEntities,
typename Parameters>
106 static void accumulate(ContainerOverSubrelations& accumulators,
107 const AllEntities& in,
108 const Parameters& params,
109 const FF& scaling_factor);
A wrapper for Relations to expose methods used by the Sumcheck prover or verifier to add the contribu...
static auto & get_grand_product_polynomial(auto &in)
static constexpr std::array< size_t, 2 > SUBRELATION_PARTIAL_LENGTHS
static Accumulator compute_grand_product_denominator(const AllEntities &in, const Parameters ¶ms)
static auto & get_shifted_grand_product_polynomial(auto &in)
static bool skip(const AllEntities &in)
Returns true if the contribution from all subrelations for the provided inputs is identically zero.
static constexpr size_t RELATION_LENGTH
static void accumulate(ContainerOverSubrelations &accumulators, const AllEntities &in, const Parameters ¶ms, const FF &scaling_factor)
Compute contribution of the goblin translator permutation relation for a given edge (internal functio...
static Accumulator compute_grand_product_numerator(const AllEntities &in, const Parameters ¶ms)
Entry point for Barretenberg command-line interface.
std::conditional_t< IsField< typename Params::DataType >, typename Params::DataType, View > GetParameterView
A type to optionally extract a view of a relation parameter in a relation.