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: Complete, auditors: [Federico], commit: 2094fd1467dd9a94803b2c5007cf60ac357aa7d2 }
3
// external_1: { status: not started, auditors: [], commit: }
4
// external_2: { status: not started, auditors: [], commit: }
5
// =====================
6
7
#pragma once
8
#include "
acir_format.hpp
"
9
#include "
serde/index.hpp
"
10
11
namespace
acir_format
{
12
14
17
24
bb::fr
from_buffer_with_bound_checks
(
const
std::vector<uint8_t>&
buffer
);
25
29
WitnessOrConstant<bb::fr>
parse_input
(
const
Acir::FunctionInput
& input);
30
36
uint32_t
get_witness_from_function_input
(
const
Acir::FunctionInput
& input);
37
46
void
update_max_witness_index
(
const
uint32_t witness_idx, AcirFormat& af);
47
55
void
update_max_witness_index_from_expression
(
Acir::Expression
const
& expr, AcirFormat& af);
56
63
void
update_max_witness_index_from_opcode
(
Acir::Opcode
const
& opcode, AcirFormat& af);
64
66
83
90
template
<
typename
T>
91
T
deserialize_msgpack_compact
(std::vector<uint8_t>&&
buf
, std::function<T(msgpack::object
const
&)> decode_msgpack);
92
96
AcirFormat
circuit_serde_to_acir_format
(
Acir::Circuit
const
& circuit);
97
104
WitnessVector
witness_map_to_witness_vector
(
Witnesses::WitnessMap
const
& witness_map);
105
109
AcirFormat
circuit_buf_to_acir_format
(std::vector<uint8_t>&&
buf
);
110
114
WitnessVector
witness_buf_to_witness_vector
(std::vector<uint8_t>&&
buf
);
115
117
119
125
std::map<uint32_t, bb::fr>
process_linear_terms
(
Acir::Expression
const
& expr);
126
133
bool
is_single_arithmetic_gate
(
Acir::Expression
const
& arg,
const
std::map<uint32_t, bb::fr>
& linear_terms);
134
135
// clang-format off
179
// clang-format on
180
std::vector<mul_quad_<fr>
>
split_into_mul_quad_gates
(
Acir::Expression
const
& arg,
181
std::map<uint32_t, bb::fr>
& linear_terms);
182
192
void
assert_zero_to_quad_constraints
(
Acir::Opcode::AssertZero
const
& arg, AcirFormat& af,
size_t
opcode_index);
193
195
201
BlockConstraint
memory_init_to_block_constraint
(
Acir::Opcode::MemoryInit
const
& mem_init);
202
207
void
add_memory_op_to_block_constraint
(
Acir::Opcode::MemoryOp
const
& mem_op, BlockConstraint& block);
208
210
228
void
add_blackbox_func_call_to_acir_format
(
Acir::Opcode::BlackBoxFuncCall
const
& arg,
229
AcirFormat& af,
230
size_t
opcode_index);
231
232
}
// namespace acir_format
acir_format.hpp
buf
uint8_t const * buf
Definition
data_store.hpp:9
index.hpp
buffer
uint8_t buffer[RANDOM_BUFFER_SIZE]
Definition
engine.cpp:34
acir_format
Definition
acir_format.cpp:30
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:774
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:299
acir_format::parse_input
WitnessOrConstant< bb::fr > parse_input(const Acir::FunctionInput &input)
Parse an Acir::FunctionInput (which can either be a witness or a constant) into a WitnessOrConstant.
Definition
acir_to_constraint_buf.cpp:38
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:94
acir_format::get_witness_from_function_input
uint32_t get_witness_from_function_input(const Acir::FunctionInput &input)
Extract the witness index from an Acir::FunctionInput representing a witness.
Definition
acir_to_constraint_buf.cpp:64
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:80
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:385
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:431
acir_format::update_max_witness_index
void update_max_witness_index(const uint32_t witness_idx, AcirFormat &af)
Update the max_witness_index.
Definition
acir_to_constraint_buf.cpp:73
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:406
acir_format::deserialize_msgpack_compact
T deserialize_msgpack_compact(std::vector< uint8_t > &&buf, std::function< T(msgpack::object const &)> decode_msgpack)
========= BYTES TO BARRETENBERG'S REPRESENTATION ========= ///
Definition
acir_to_constraint_buf.cpp:274
acir_format::WitnessVector
std::vector< bb::fr > WitnessVector
Definition
acir_format.hpp:35
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:829
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:744
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:363
acir_format::from_buffer_with_bound_checks
bb::fr from_buffer_with_bound_checks(const std::vector< uint8_t > &buffer)
========= HELPERS ========= ///
Definition
acir_to_constraint_buf.cpp:32
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:541
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:573
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:878
std::get
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition
tuple.hpp:13
Acir::Circuit
Definition
acir.hpp:3495
Acir::Expression
Definition
acir.hpp:2794
Acir::FunctionInput
Definition
acir.hpp:2035
Acir::Opcode::AssertZero
Definition
acir.hpp:3046
Acir::Opcode::BlackBoxFuncCall
Definition
acir.hpp:3062
Acir::Opcode::MemoryInit
Definition
acir.hpp:3101
Acir::Opcode::MemoryOp
Definition
acir.hpp:3078
Acir::Opcode
Definition
acir.hpp:3044
Witnesses::WitnessMap
Definition
witness_stack.hpp:86
bb::field< Bn254FrParams >
src
barretenberg
dsl
acir_format
acir_to_constraint_buf.hpp
Generated by
1.9.8