barretenberg
Loading...
Searching...
No Matches
relation_definitions_fwd.hpp
1#pragma once
2
3#include "barretenberg/relations/relation_types.hpp"
4
5#define ExtendedEdge(Flavor) Flavor::ExtendedEdges
6#define EvaluationEdge(Flavor) Flavor::AllValues
7#define EntityEdge(Flavor) Flavor::AllEntities<Flavor::FF>
8
9#define ACCUMULATE(...) _ACCUMULATE(__VA_ARGS__)
10#define _ACCUMULATE(Preface, RelationImpl, Flavor, AccumulatorType, EdgeType) \
11 Preface template void \
12 RelationImpl<Flavor::FF>::accumulate<proof_system::Relation<RelationImpl<Flavor::FF>>::AccumulatorType, \
13 EdgeType(Flavor)>( \
14 proof_system::Relation<RelationImpl<Flavor::FF>>::AccumulatorType&, \
15 EdgeType(Flavor) const&, \
16 RelationParameters<Flavor::FF> const&, \
17 Flavor::FF const&);
18
19#define PERMUTATION_METHOD(...) _PERMUTATION_METHOD(__VA_ARGS__)
20#define _PERMUTATION_METHOD(Preface, MethodName, RelationImpl, Flavor, AccumulatorType, EdgeType) \
21 Preface template typename proof_system::Relation<RelationImpl<Flavor::FF>>::AccumulatorType \
22 RelationImpl<Flavor::FF>::MethodName<proof_system::Relation<RelationImpl<Flavor::FF>>::AccumulatorType, \
23 EdgeType(Flavor)>(EdgeType(Flavor) const&, \
24 RelationParameters<Flavor::FF> const&);
25
26#define SUMCHECK_RELATION_CLASS(...) _SUMCHECK_RELATION_CLASS(__VA_ARGS__)
27#define _SUMCHECK_RELATION_CLASS(Preface, RelationImpl, Flavor) \
28 ACCUMULATE(Preface, RelationImpl, Flavor, SumcheckTupleOfUnivariatesOverSubrelations, ExtendedEdge) \
29 ACCUMULATE(Preface, RelationImpl, Flavor, SumcheckArrayOfValuesOverSubrelations, EvaluationEdge) \
30 ACCUMULATE(Preface, RelationImpl, Flavor, SumcheckArrayOfValuesOverSubrelations, EntityEdge)
31
32#define DECLARE_SUMCHECK_RELATION_CLASS(RelationImpl, Flavor) SUMCHECK_RELATION_CLASS(extern, RelationImpl, Flavor)
33#define DEFINE_SUMCHECK_RELATION_CLASS(RelationImpl, Flavor) SUMCHECK_RELATION_CLASS(, RelationImpl, Flavor)
34
35#define SUMCHECK_PERMUTATION_CLASS(...) _SUMCHECK_PERMUTATION_CLASS(__VA_ARGS__)
36#define _SUMCHECK_PERMUTATION_CLASS(Preface, RelationImpl, Flavor) \
37 PERMUTATION_METHOD( \
38 Preface, compute_permutation_numerator, RelationImpl, Flavor, UnivariateAccumulator0, ExtendedEdge) \
39 PERMUTATION_METHOD( \
40 Preface, compute_permutation_numerator, RelationImpl, Flavor, ValueAccumulator0, EvaluationEdge) \
41 PERMUTATION_METHOD(Preface, compute_permutation_numerator, RelationImpl, Flavor, ValueAccumulator0, EntityEdge) \
42 PERMUTATION_METHOD( \
43 Preface, compute_permutation_denominator, RelationImpl, Flavor, UnivariateAccumulator0, ExtendedEdge) \
44 PERMUTATION_METHOD( \
45 Preface, compute_permutation_denominator, RelationImpl, Flavor, ValueAccumulator0, EvaluationEdge) \
46 PERMUTATION_METHOD(Preface, compute_permutation_denominator, RelationImpl, Flavor, ValueAccumulator0, EntityEdge)
47
48#define DECLARE_SUMCHECK_PERMUTATION_CLASS(RelationImpl, Flavor) \
49 SUMCHECK_PERMUTATION_CLASS(extern, RelationImpl, Flavor)
50#define DEFINE_SUMCHECK_PERMUTATION_CLASS(RelationImpl, Flavor) SUMCHECK_PERMUTATION_CLASS(, RelationImpl, Flavor)