Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
translator_non_native_field_relation.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: not started, auditors: [], date: YYYY-MM-DD }
3// external_1: { status: not started, auditors: [], date: YYYY-MM-DD }
4// external_2: { status: not started, auditors: [], date: YYYY-MM-DD }
5// =====================
6
7#pragma once
10
11namespace bb {
12
13template <typename FF_> class TranslatorNonNativeFieldRelationImpl {
14 public:
15 using FF = FF_;
16
17 // 1 + polynomial degree of this relation
18 static constexpr std::array<size_t, 3> SUBRELATION_PARTIAL_LENGTHS{
19 3, // Lower wide limb subrelation (checks result is 0 mod 2¹³⁶)
20 3, // Higher wide limb subrelation (checks result is 0 in higher mod 2¹³⁶),
21 3 // Prime subrelation (checks result in native field)
22 };
23
28 template <typename AllEntities> inline static bool skip(const AllEntities& in)
29 {
30 return in.lagrange_even_in_minicircuit.is_zero();
31 }
94 template <typename ContainerOverSubrelations, typename AllEntities, typename Parameters>
95 static void accumulate(ContainerOverSubrelations& accumulators,
96 const AllEntities& in,
97 const Parameters& params,
98 const FF& scaling_factor);
99};
100
102
103} // namespace bb
A wrapper for Relations to expose methods used by the Sumcheck prover or verifier to add the contribu...
static constexpr std::array< size_t, 3 > SUBRELATION_PARTIAL_LENGTHS
static bool skip(const AllEntities &in)
Returns true if the contribution from all subrelations for the provided inputs is identically zero.
static void accumulate(ContainerOverSubrelations &accumulators, const AllEntities &in, const Parameters &params, const FF &scaling_factor)
Expression for the computation of Translator accumulator in integers through 68-bit limbs and native ...
Entry point for Barretenberg command-line interface.
typename Flavor::FF FF