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: 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#include <cstdint>
11#include <vector>
12
13namespace acir_format {
14
16 Read = 0,
17 Write = 1,
18};
19
25
35
37 ROM = 0,
38 RAM = 1,
41};
42
58
59template <typename Builder>
61 const BlockConstraint& constraint,
62 bool has_valid_witness_assignments = true);
63
64template <typename Builder>
66 const BlockConstraint& constraint,
67 bool has_valid_witness_assignments,
69template <typename Builder>
71 const BlockConstraint& constraint,
72 bool has_valid_witness_assignments,
74template <typename Builder>
76 const BlockConstraint& constraint,
77 bool has_valid_witness_assignments,
79template <typename Builder>
81 const BlockConstraint& constraint,
83
84template <typename B> inline void read(B& buf, MemOp& mem_op)
85{
86 using serialize::read;
87 read(buf, mem_op.access_type);
88 read(buf, mem_op.index);
89 read(buf, mem_op.value);
90}
91
92template <typename B> inline void write(B& buf, MemOp const& mem_op)
93{
94 using serialize::write;
95 write(buf, mem_op.access_type);
96 write(buf, mem_op.index);
97 write(buf, mem_op.value);
98}
99
100template <typename B> inline void read(B& buf, BlockConstraint& constraint)
101{
102 using serialize::read;
103 read(buf, constraint.init);
104 read(buf, constraint.trace);
105 uint8_t type;
106 read(buf, type);
107 constraint.type = static_cast<BlockType>(type);
108}
109
110template <typename B> inline void write(B& buf, BlockConstraint const& constraint)
111{
112 using serialize::write;
113 write(buf, constraint.init);
114 write(buf, constraint.trace);
115 write(buf, static_cast<uint8_t>(constraint.type));
116}
117} // namespace acir_format
AluTraceBuilder builder
Definition alu.test.cpp:124
uint8_t const * buf
Definition data_store.hpp:9
const auto init
Definition fr.bench.cpp:141
void process_RAM_operations(Builder &builder, const BlockConstraint &constraint, bool has_valid_witness_assignments, std::vector< bb::stdlib::field_t< Builder > > &init)
void create_block_constraints(UltraCircuitBuilder &builder, const BlockConstraint &constraint, bool has_valid_witness_assignments)
Create block constraints; Specialization for Ultra arithmetization.
void process_ROM_operations(Builder &builder, const BlockConstraint &constraint, bool has_valid_witness_assignments, std::vector< bb::stdlib::field_t< Builder > > &init)
void process_call_data_operations(Builder &builder, const BlockConstraint &constraint, bool has_valid_witness_assignments, std::vector< bb::stdlib::field_t< Builder > > &init)
void process_return_data_operations(Builder &builder, const BlockConstraint &constraint, std::vector< bb::stdlib::field_t< Builder > > &init)
void write(std::vector< uint8_t > &buf, Chonk::VerificationKey const &vk)
Definition chonk.hpp:366
void read(uint8_t const *&it, Chonk::VerificationKey &vk)
Definition chonk.hpp:350
void read(auto &it, msgpack_concepts::HasMsgPack auto &obj)
Automatically derived read for any object that defines .msgpack() (implicitly defined by MSGPACK_FIEL...
void write(auto &buf, const msgpack_concepts::HasMsgPack auto &obj)
Automatically derived write for any object that defines .msgpack() (implicitly defined by MSGPACK_FIE...
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
Struct holding the data required to add memory constraints to a circuit.
std::vector< uint32_t > init
Memory operation. Index and value store the index of the memory location, and value is the value to b...
WitnessOrConstant< bb::fr > index
WitnessOrConstant< bb::fr > value