Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
public_inputs_trace.cpp
Go to the documentation of this file.
1
#include "
barretenberg/vm2/tracegen/public_inputs_trace.hpp
"
2
3
#include "
barretenberg/vm2/common/aztec_constants.hpp
"
4
#include "
barretenberg/vm2/tracegen/precomputed_trace.hpp
"
5
6
namespace
bb::avm2::tracegen
{
7
8
void
PublicInputsTraceBuilder::process_public_inputs
(
TraceContainer
& trace,
const
PublicInputs
& public_inputs)
9
{
10
using
C
=
Column
;
11
12
auto
cols = public_inputs.
to_columns
();
13
14
trace
.reserve_column(C::public_inputs_cols_0_,
AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
);
15
trace
.reserve_column(C::public_inputs_cols_1_,
AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
);
16
trace
.reserve_column(C::public_inputs_cols_2_,
AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
);
17
trace
.reserve_column(C::public_inputs_cols_3_,
AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
);
18
19
for
(uint32_t row = 0; row <
AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
; row++) {
20
trace
.set(C::public_inputs_cols_0_, row, cols[0][row]);
21
trace
.set(C::public_inputs_cols_1_, row, cols[1][row]);
22
trace
.set(C::public_inputs_cols_2_, row, cols[2][row]);
23
trace
.set(C::public_inputs_cols_3_, row, cols[3][row]);
24
}
25
}
26
27
// precomputed trace size must be greater than the public inputs trace size
28
// because we use precomputed_idx to lookup into the public inputs trace.
29
static_assert
(
PRECOMPUTED_TRACE_SIZE
>=
AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
);
30
31
void
PublicInputsTraceBuilder::process_public_inputs_aux_precomputed
(
TraceContainer
& trace)
32
{
33
using
C
=
Column
;
34
35
// sel is precomputed to be 1 for all rows up to AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
36
trace
.reserve_column(C::public_inputs_sel,
AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
);
37
for
(uint32_t row = 0; row <
AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
; row++) {
38
trace
.set(C::public_inputs_sel, row, 1);
39
}
40
}
41
42
}
// namespace bb::avm2::tracegen
aztec_constants.hpp
AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
#define AVM_PUBLIC_INPUTS_COLUMNS_MAX_LENGTH
Definition
aztec_constants.hpp:177
bb::avm2::tracegen::PublicInputsTraceBuilder::process_public_inputs
void process_public_inputs(TraceContainer &trace, const PublicInputs &public_inputs)
Definition
public_inputs_trace.cpp:8
bb::avm2::tracegen::PublicInputsTraceBuilder::process_public_inputs_aux_precomputed
void process_public_inputs_aux_precomputed(TraceContainer &trace)
Definition
public_inputs_trace.cpp:31
bb::avm2::tracegen::TraceContainer
Definition
trace_container.hpp:24
trace
TestTraceContainer trace
Definition
data_copy.test.cpp:63
bb::avm2::tracegen
Definition
full_row.hpp:9
bb::avm2::tracegen::PRECOMPUTED_TRACE_SIZE
constexpr uint32_t PRECOMPUTED_TRACE_SIZE
Definition
precomputed_trace.hpp:11
bb::avm2::Column
Column
Definition
columns.hpp:31
precomputed_trace.hpp
public_inputs_trace.hpp
bb::avm2::PublicInputs
Definition
avm_io.hpp:26
bb::avm2::PublicInputs::to_columns
std::vector< std::vector< FF > > to_columns() const
Serialization to columns.
Definition
avm_io.cpp:142
src
barretenberg
vm2
tracegen
public_inputs_trace.cpp
Generated by
1.9.8