barretenberg
Loading...
Searching...
No Matches
translator_non_native_field_relation.hpp
1#pragma once
2#include "barretenberg/ecc/curves/bn254/bn254.hpp"
3#include "barretenberg/relations/relation_types.hpp"
4
5namespace proof_system {
6
7template <typename FF_> class GoblinTranslatorNonNativeFieldRelationImpl {
8 public:
9 using FF = FF_;
10
11 // 1 + polynomial degree of this relation
12 static constexpr std::array<size_t, 3> SUBRELATION_PARTIAL_LENGTHS{
13 3, // Lower wide limb subrelation (checks result is 0 mod 2¹³⁶)
14 3, // Higher wide limb subrelation (checks result is 0 in higher mod 2¹³⁶),
15 3 // Prime subrelation (checks result in native field)
16 };
17
80 template <typename ContainerOverSubrelations, typename AllEntities, typename Parameters>
81 static void accumulate(ContainerOverSubrelations& accumulators,
82 const AllEntities& in,
83 const Parameters& params,
84 const FF& scaling_factor);
85};
86
87template <typename FF>
89
90} // namespace proof_system
Definition: translator_non_native_field_relation.hpp:7
static void accumulate(ContainerOverSubrelations &accumulators, const AllEntities &in, const Parameters &params, const FF &scaling_factor)
Expression for the computation of Goblin Translator accumulator in integers through 68-bit limbs and ...
Definition: translator_non_native_field_relation.cpp:69
The templates defined herein facilitate sharing the relation arithmetic between the prover and the ve...
Definition: relation_types.hpp:121