Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
acir_to_constraint_buf.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
8
#include "
acir_format.hpp
"
9
#include "
serde/index.hpp
"
10
11
namespace
acir_format
{
12
14
17
21
WitnessOrConstant<bb::fr>
parse_input
(
Acir::FunctionInput
input);
22
28
uint32_t
get_witness_from_function_input
(
Acir::FunctionInput
input);
29
38
void
update_max_witness_index
(uint32_t witness_idx, AcirFormat& af);
39
47
void
update_max_witness_index_from_expression
(
Acir::Expression
const
& expr, AcirFormat& af);
48
55
void
update_max_witness_index_from_opcode
(
Acir::Opcode
const
& opcode, AcirFormat& af);
56
58
76
86
template
<
typename
T>
87
T
deserialize_any_format
(std::vector<uint8_t>&&
buf
,
88
std::function<T(msgpack::object
const
&)> decode_msgpack,
89
std::function<T(std::vector<uint8_t>)> decode_bincode);
90
94
AcirFormat
circuit_serde_to_acir_format
(
Acir::Circuit
const
& circuit);
95
102
WitnessVector
witness_map_to_witness_vector
(
Witnesses::WitnessMap
const
& witness_map);
103
107
AcirFormat
circuit_buf_to_acir_format
(std::vector<uint8_t>&&
buf
);
108
112
WitnessVector
witness_buf_to_witness_vector
(std::vector<uint8_t>&&
buf
);
113
115
117
123
std::map<uint32_t, bb::fr>
process_linear_terms
(
Acir::Expression
const
& expr);
124
131
bool
is_single_arithmetic_gate
(
Acir::Expression
const
& arg,
const
std::map<uint32_t, bb::fr>
& linear_terms);
132
133
// clang-format off
177
// clang-format on
178
std::vector<mul_quad_<fr>
>
split_into_mul_quad_gates
(
Acir::Expression
const
& arg,
179
std::map<uint32_t, bb::fr>
& linear_terms);
180
190
void
assert_zero_to_quad_constraints
(
Acir::Opcode::AssertZero
const
& arg, AcirFormat& af,
size_t
opcode_index);
191
193
199
BlockConstraint
memory_init_to_block_constraint
(
Acir::Opcode::MemoryInit
const
& mem_init);
200
205
void
add_memory_op_to_block_constraint
(
Acir::Opcode::MemoryOp
const
& mem_op, BlockConstraint& block);
206
208
226
void
add_blackbox_func_call_to_acir_format
(
Acir::Opcode::BlackBoxFuncCall
const
& arg,
227
AcirFormat& af,
228
size_t
opcode_index);
229
230
}
// namespace acir_format
acir_format.hpp
buf
uint8_t const * buf
Definition
data_store.hpp:9
index.hpp
acir_format
Definition
acir_format.cpp:31
acir_format::add_memory_op_to_block_constraint
void add_memory_op_to_block_constraint(Acir::Opcode::MemoryOp const &mem_op, BlockConstraint &block)
Process memory operation, either read or write, and update the BlockConstraint type accordingly.
Definition
acir_to_constraint_buf.cpp:793
acir_format::circuit_serde_to_acir_format
AcirFormat circuit_serde_to_acir_format(Acir::Circuit const &circuit)
Convert an Acir::Circuit into an AcirFormat by processing all the opcodes.
Definition
acir_to_constraint_buf.cpp:316
acir_format::deserialize_any_format
T deserialize_any_format(std::vector< uint8_t > &&buf, std::function< T(msgpack::object const &)> decode_msgpack, std::function< T(std::vector< uint8_t >)> decode_bincode)
========= BYTES TO BARRETENBERG'S REPRESENTATION ========= ///
Definition
acir_to_constraint_buf.cpp:268
acir_format::update_max_witness_index_from_opcode
void update_max_witness_index_from_opcode(Acir::Opcode const &opcode, AcirFormat &af)
Update the max witness index by processing all the witness indices contained in the Acir::Opcode.
Definition
acir_to_constraint_buf.cpp:88
acir_format::update_max_witness_index_from_expression
void update_max_witness_index_from_expression(Acir::Expression const &expr, AcirFormat &af)
Update max_witness_index by processing all witnesses in an Acir::Expression.
Definition
acir_to_constraint_buf.cpp:74
acir_format::witness_buf_to_witness_vector
WitnessVector witness_buf_to_witness_vector(std::vector< uint8_t > &&buf)
Convert a buffer representing a witness vector into Barretenberg's internal WitnessVector format.
Definition
acir_to_constraint_buf.cpp:403
acir_format::split_into_mul_quad_gates
std::vector< mul_quad_< fr > > split_into_mul_quad_gates(Acir::Expression const &arg, std::map< uint32_t, bb::fr > &linear_terms)
========= ACIR OPCODE HANDLERS ========= ///
Definition
acir_to_constraint_buf.cpp:450
acir_format::witness_map_to_witness_vector
WitnessVector witness_map_to_witness_vector(Witnesses::WitnessMap const &witness_map)
Convert from the ACIR-native WitnessMap format to Barretenberg's internal WitnessVector format.
Definition
acir_to_constraint_buf.cpp:427
acir_format::get_witness_from_function_input
uint32_t get_witness_from_function_input(Acir::FunctionInput input)
Extract the witness index from an Acir::FunctionInput representing a witness.
Definition
acir_to_constraint_buf.cpp:58
acir_format::WitnessVector
std::vector< bb::fr > WitnessVector
Definition
acir_format.hpp:37
acir_format::is_single_arithmetic_gate
bool is_single_arithmetic_gate(Acir::Expression const &arg, const std::map< uint32_t, bb::fr > &linear_terms)
Given an Acir::Expression and its processed linear terms, determine whether it can be represented by ...
Definition
acir_to_constraint_buf.cpp:848
acir_format::parse_input
WitnessOrConstant< bb::fr > parse_input(Acir::FunctionInput input)
========= HELPERS ========= ///
Definition
acir_to_constraint_buf.cpp:32
acir_format::update_max_witness_index
void update_max_witness_index(uint32_t witness_idx, AcirFormat &af)
Update the max_witness_index.
Definition
acir_to_constraint_buf.cpp:67
acir_format::memory_init_to_block_constraint
BlockConstraint memory_init_to_block_constraint(Acir::Opcode::MemoryInit const &mem_init)
========= MEMORY OPERATIONS ========== ///
Definition
acir_to_constraint_buf.cpp:763
acir_format::circuit_buf_to_acir_format
AcirFormat circuit_buf_to_acir_format(std::vector< uint8_t > &&buf)
Convert a buffer representing a circuit into Barretenberg's internal AcirFormat representation.
Definition
acir_to_constraint_buf.cpp:377
acir_format::assert_zero_to_quad_constraints
void assert_zero_to_quad_constraints(Acir::Opcode::AssertZero const &arg, AcirFormat &af, size_t opcode_index)
Single entrypoint for processing arithmetic (AssertZero) opcodes.
Definition
acir_to_constraint_buf.cpp:555
acir_format::add_blackbox_func_call_to_acir_format
void add_blackbox_func_call_to_acir_format(Acir::Opcode::BlackBoxFuncCall const &arg, AcirFormat &af, size_t opcode_index)
Definition
acir_to_constraint_buf.cpp:584
acir_format::process_linear_terms
std::map< uint32_t, bb::fr > process_linear_terms(Acir::Expression const &expr)
========= ACIR OPCODE HANDLERS ========= ///
Definition
acir_to_constraint_buf.cpp:897
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
Acir::Circuit
Definition
acir.hpp:5008
Acir::Expression
Definition
acir.hpp:4004
Acir::FunctionInput
Definition
acir.hpp:2926
Acir::Opcode::AssertZero
Definition
acir.hpp:4364
Acir::Opcode::BlackBoxFuncCall
Definition
acir.hpp:4384
Acir::Opcode::MemoryInit
Definition
acir.hpp:4436
Acir::Opcode::MemoryOp
Definition
acir.hpp:4404
Acir::Opcode
Definition
acir.hpp:4362
Witnesses::WitnessMap
Definition
witness_stack.hpp:97
src
barretenberg
dsl
acir_format
acir_to_constraint_buf.hpp
Generated by
1.9.8