Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
block_constraint.hpp
Go to the documentation of this file.
1
// === AUDIT STATUS ===
2
// internal: { status: Complete, auditors: [Raju], commit: 05a381f8b31ae4648e480f1369e911b148216e8b}
3
// external_1: { status: not started, auditors: [], commit: }
4
// external_2: { status: not started, auditors: [], commit: }
5
// =====================
6
7
#pragma once
8
#include "
barretenberg/dsl/acir_format/witness_constant.hpp
"
9
#include "
barretenberg/stdlib/primitives/field/field.hpp
"
10
#include <cstdint>
11
#include <vector>
12
13
namespace
acir_format
{
14
15
enum
AccessType
:
std::uint8_t
{
16
Read
= 0,
17
Write
= 1,
18
};
19
20
enum
CallDataType
:
std::uint8_t
{
21
None
= 0,
22
Primary
= 1,
23
Secondary
= 2,
24
};
25
30
struct
MemOp
{
31
AccessType
access_type
;
32
WitnessOrConstant<bb::fr>
index
;
33
WitnessOrConstant<bb::fr>
value
;
34
};
35
36
enum
BlockType
:
std::uint8_t
{
37
ROM
= 0,
38
RAM
= 1,
39
CallData
= 2,
40
ReturnData
= 3,
41
};
42
52
struct
BlockConstraint
{
53
std::vector<uint32_t>
init
;
54
std::vector<MemOp>
trace
;
55
BlockType
type
;
56
CallDataType
calldata_id
;
57
};
58
59
template
<
typename
Builder>
void
create_block_constraints
(
Builder
&
builder
,
const
BlockConstraint
& constraint);
60
61
template
<
typename
Builder>
62
void
process_ROM_operations
(
Builder
&
builder
,
63
const
BlockConstraint
& constraint,
64
std::vector<
bb::stdlib::field_t<Builder>
>&
init
);
65
template
<
typename
Builder>
66
void
process_RAM_operations
(
Builder
&
builder
,
67
const
BlockConstraint
& constraint,
68
std::vector<
bb::stdlib::field_t<Builder>
>&
init
);
69
template
<
typename
Builder>
70
void
process_call_data_operations
(
Builder
&
builder
,
71
const
BlockConstraint
& constraint,
72
std::vector<
bb::stdlib::field_t<Builder>
>&
init
);
73
template
<
typename
Builder>
74
void
process_return_data_operations
(
Builder
&
builder
,
75
const
BlockConstraint
& constraint,
76
std::vector<
bb::stdlib::field_t<Builder>
>&
init
);
77
}
// namespace acir_format
bb::ECCVMCircuitBuilder
Definition
eccvm_circuit_builder.hpp:24
bb::stdlib::field_t
Definition
field.hpp:45
builder
AluTraceBuilder builder
Definition
alu.test.cpp:124
init
const auto init
Definition
fr.bench.cpp:135
acir_format
Definition
acir_format.cpp:30
acir_format::AccessType
AccessType
Definition
block_constraint.hpp:15
acir_format::Read
@ Read
Definition
block_constraint.hpp:16
acir_format::Write
@ Write
Definition
block_constraint.hpp:17
acir_format::CallDataType
CallDataType
Definition
block_constraint.hpp:20
acir_format::Secondary
@ Secondary
Definition
block_constraint.hpp:23
acir_format::None
@ None
Definition
block_constraint.hpp:21
acir_format::Primary
@ Primary
Definition
block_constraint.hpp:22
acir_format::BlockType
BlockType
Definition
block_constraint.hpp:36
acir_format::ROM
@ ROM
Definition
block_constraint.hpp:37
acir_format::CallData
@ CallData
Definition
block_constraint.hpp:39
acir_format::RAM
@ RAM
Definition
block_constraint.hpp:38
acir_format::ReturnData
@ ReturnData
Definition
block_constraint.hpp:40
acir_format::process_RAM_operations
void process_RAM_operations(Builder &builder, const BlockConstraint &constraint, std::vector< bb::stdlib::field_t< Builder > > &init)
Definition
block_constraint.cpp:112
acir_format::create_block_constraints
void create_block_constraints(UltraCircuitBuilder &builder, const BlockConstraint &constraint)
Create block constraints; Specialization for Ultra arithmetization.
Definition
block_constraint.cpp:23
acir_format::process_call_data_operations
void process_call_data_operations(Builder &builder, const BlockConstraint &constraint, std::vector< bb::stdlib::field_t< Builder > > &init)
Definition
block_constraint.cpp:139
acir_format::process_ROM_operations
void process_ROM_operations(Builder &builder, const BlockConstraint &constraint, std::vector< bb::stdlib::field_t< Builder > > &init)
Definition
block_constraint.cpp:88
acir_format::process_return_data_operations
void process_return_data_operations(Builder &builder, const BlockConstraint &constraint, std::vector< bb::stdlib::field_t< Builder > > &init)
Definition
block_constraint.cpp:183
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
field.hpp
acir_format::BlockConstraint
Struct holding the data required to add memory constraints to a circuit.
Definition
block_constraint.hpp:52
acir_format::BlockConstraint::trace
std::vector< MemOp > trace
Definition
block_constraint.hpp:54
acir_format::BlockConstraint::type
BlockType type
Definition
block_constraint.hpp:55
acir_format::BlockConstraint::init
std::vector< uint32_t > init
Definition
block_constraint.hpp:53
acir_format::BlockConstraint::calldata_id
CallDataType calldata_id
Definition
block_constraint.hpp:56
acir_format::MemOp
Memory operation. Index and value store the index of the memory location, and value is the value to b...
Definition
block_constraint.hpp:30
acir_format::MemOp::index
WitnessOrConstant< bb::fr > index
Definition
block_constraint.hpp:32
acir_format::MemOp::access_type
AccessType access_type
Definition
block_constraint.hpp:31
acir_format::MemOp::value
WitnessOrConstant< bb::fr > value
Definition
block_constraint.hpp:33
acir_format::WitnessOrConstant
Definition
witness_constant.hpp:12
witness_constant.hpp
src
barretenberg
dsl
acir_format
block_constraint.hpp
Generated by
1.9.8