Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
ecc_point_table_relation.hpp
Go to the documentation of this file.
1
// === AUDIT STATUS ===
2
// internal: { status: Complete, auditors: [Raju], commit: 2a49eb6 }
3
// external_1: { status: not started, auditors: [], commit: }
4
// external_2: { status: not started, auditors: [], commit: }
5
// =====================
6
7
#pragma once
8
#include "
barretenberg/relations/relation_types.hpp
"
9
10
namespace
bb
{
11
24
template
<
typename
FF_>
class
ECCVMPointTableRelationImpl
{
25
public
:
26
using
FF
= FF_;
27
28
// Named subrelation indices — matches SUBRELATION_PARTIAL_LENGTHS ordering.
29
enum
SubrelationIndex
:
size_t
{
30
// Point doubling: Dx = 2*Tx when point_transition = 1
31
DOUBLE_X
= 0,
32
DOUBLE_Y
= 1,
33
// D propagation: Dx_shift = Dx when not at transition
34
D_PROPAGATE_X
= 2,
35
D_PROPAGATE_Y
= 3,
36
// Point addition: T = T_shift + D when not at transition
37
ADD_X
= 4,
38
ADD_Y
= 5,
39
NUM_SUBRELATIONS
,
40
};
41
42
static
constexpr
std::array<size_t, 6>
SUBRELATION_PARTIAL_LENGTHS
{ 6, 6, 6, 6, 6, 6 };
43
static_assert
(
NUM_SUBRELATIONS
==
SUBRELATION_PARTIAL_LENGTHS
.size());
44
45
template
<
typename
ContainerOverSubrelations,
typename
AllEntities,
typename
Parameters>
46
static
void
accumulate
(ContainerOverSubrelations& accumulator,
47
const
AllEntities& in,
48
const
Parameters&
/* unused */
,
49
const
FF
& scaling_factor);
50
};
51
52
template
<
typename
FF>
using
ECCVMPointTableRelation
=
Relation<ECCVMPointTableRelationImpl<FF>
>;
53
54
}
// namespace bb
bb::ECCVMPointTableRelationImpl
ECCVMPointTableRelationImpl.
Definition
ecc_point_table_relation.hpp:24
bb::ECCVMPointTableRelationImpl::accumulate
static void accumulate(ContainerOverSubrelations &accumulator, const AllEntities &in, const Parameters &, const FF &scaling_factor)
ECCVMPointTableRelationImpl.
Definition
ecc_point_table_relation_impl.hpp:30
bb::ECCVMPointTableRelationImpl::FF
FF_ FF
Definition
ecc_point_table_relation.hpp:26
bb::ECCVMPointTableRelationImpl::SubrelationIndex
SubrelationIndex
Definition
ecc_point_table_relation.hpp:29
bb::ECCVMPointTableRelationImpl::ADD_Y
@ ADD_Y
Definition
ecc_point_table_relation.hpp:38
bb::ECCVMPointTableRelationImpl::DOUBLE_X
@ DOUBLE_X
Definition
ecc_point_table_relation.hpp:31
bb::ECCVMPointTableRelationImpl::D_PROPAGATE_Y
@ D_PROPAGATE_Y
Definition
ecc_point_table_relation.hpp:35
bb::ECCVMPointTableRelationImpl::DOUBLE_Y
@ DOUBLE_Y
Definition
ecc_point_table_relation.hpp:32
bb::ECCVMPointTableRelationImpl::ADD_X
@ ADD_X
Definition
ecc_point_table_relation.hpp:37
bb::ECCVMPointTableRelationImpl::NUM_SUBRELATIONS
@ NUM_SUBRELATIONS
Definition
ecc_point_table_relation.hpp:39
bb::ECCVMPointTableRelationImpl::D_PROPAGATE_X
@ D_PROPAGATE_X
Definition
ecc_point_table_relation.hpp:34
bb::ECCVMPointTableRelationImpl::SUBRELATION_PARTIAL_LENGTHS
static constexpr std::array< size_t, 6 > SUBRELATION_PARTIAL_LENGTHS
Definition
ecc_point_table_relation.hpp:42
bb::Relation
A wrapper for Relations to expose methods used by the Sumcheck prover or verifier to add the contribu...
Definition
relation_types.hpp:96
bb
Entry point for Barretenberg command-line interface.
Definition
api.hpp:5
relation_types.hpp
bb::field< bb::Bn254FrParams >
src
barretenberg
relations
ecc_vm
ecc_point_table_relation.hpp
Generated by
1.9.8