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
9#include <cstdint>
10#include <vector>
11
12namespace acir_format {
13
19
21 ROM = 0,
22 RAM = 1,
25};
26
33
34template <typename Builder>
36 const BlockConstraint& constraint,
37 bool has_valid_witness_assignments = true);
38
39template <typename Builder>
41 const BlockConstraint& constraint,
42 bool has_valid_witness_assignments,
44template <typename Builder>
46 const BlockConstraint& constraint,
47 bool has_valid_witness_assignments,
49template <typename Builder>
51 const BlockConstraint& constraint,
52 bool has_valid_witness_assignments,
54template <typename Builder>
56
57template <typename B> inline void read(B& buf, MemOp& mem_op)
58{
59 using serialize::read;
60 read(buf, mem_op.access_type);
61 read(buf, mem_op.index);
62 read(buf, mem_op.value);
63}
64
65template <typename B> inline void write(B& buf, MemOp const& mem_op)
66{
67 using serialize::write;
68 write(buf, mem_op.access_type);
69 write(buf, mem_op.index);
70 write(buf, mem_op.value);
71}
72
73template <typename B> inline void read(B& buf, BlockConstraint& constraint)
74{
75 using serialize::read;
76 read(buf, constraint.init);
77 read(buf, constraint.trace);
78 uint8_t type;
79 read(buf, type);
80 constraint.type = static_cast<BlockType>(type);
81}
82
83template <typename B> inline void write(B& buf, BlockConstraint const& constraint)
84{
85 using serialize::write;
86 write(buf, constraint.init);
87 write(buf, constraint.trace);
88 write(buf, static_cast<uint8_t>(constraint.type));
89}
90} // namespace acir_format
AluTraceBuilder builder
Definition alu.test.cpp:123
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 write(B &buf, MemOp const &mem_op)
void process_return_data_operations(const BlockConstraint &constraint, std::vector< bb::stdlib::field_t< Builder > > &init)
void read(B &buf, MemOp &mem_op)
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
std::vector< bb::poly_triple > init
bb::poly_triple value
bb::poly_triple index