|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Row-major storage for the gates of one execution trace block: one vector of GateRow. Column accessors (wires, q_m..q_5, gate selectors) return persistent views into the rows. More...
#include <execution_trace_block.hpp>
Public Types | |
| using | SelectorType = Selector< FF > |
| using | Row = GateRow< FF, NUM_WIRES > |
| using | Tile = GateTile< FF, NUM_WIRES > |
| using | WireType = WireColumn< FF, NUM_WIRES > |
| using | Wires = std::array< WireType, NUM_WIRES > |
Public Member Functions | |
| ExecutionTraceBlock ()=default | |
| ExecutionTraceBlock (std::initializer_list< GateKind > kinds) | |
| Construct a block that owns the listed gate kinds. | |
| ExecutionTraceBlock (const ExecutionTraceBlock &other) | |
| ExecutionTraceBlock & | operator= (const ExecutionTraceBlock &other) |
| ExecutionTraceBlock (ExecutionTraceBlock &&other) noexcept | |
| ExecutionTraceBlock & | operator= (ExecutionTraceBlock &&other) noexcept |
| ~ExecutionTraceBlock ()=default | |
| void | tracy_gate () |
| uint32_t | trace_offset () const |
| size_t | trace_end () const |
| bool | operator== (const ExecutionTraceBlock &other) const |
| size_t | size () const |
| void | append_gate (const Row &row) |
| Append one complete gate: wires, non-gate selectors, and the (single) active gate selector. | |
| void | reserve (size_t num_rows) |
Reserve capacity for num_rows gates. | |
| bool | owns_gate_kind (GateKind kind) const |
| std::vector< GateKind > | owned_gate_kinds () const |
| GateSelectorColumn< FF, NUM_WIRES > & | gate_selector_for (GateKind kind) |
Reference to this block's selector view for kind; aborts if the block does not own it. For cross-block reads, use read_gate_selector instead. | |
| RefVector< Selector< FF > > | get_selectors () |
| All selectors of this block: the non-gate selectors followed by the owned gate selectors. | |
| void | free_data () |
| Release gate memory. Caches block size so size() still works. | |
| WireType & | w_l () |
| WireType & | w_r () |
| WireType & | w_o () |
| WireType & | w_4 () |
| SelectorColumn< FF, NUM_WIRES > & | q_m () |
| SelectorColumn< FF, NUM_WIRES > & | q_c () |
| SelectorColumn< FF, NUM_WIRES > & | q_1 () |
| SelectorColumn< FF, NUM_WIRES > & | q_2 () |
| SelectorColumn< FF, NUM_WIRES > & | q_3 () |
| SelectorColumn< FF, NUM_WIRES > & | q_4 () |
| SelectorColumn< FF, NUM_WIRES > & | q_5 () |
Public Attributes | |
| size_t | cached_size_ = 0 |
| bool | data_freed_ = false |
| uint32_t | trace_offset_ = std::numeric_limits<uint32_t>::max() |
| std::vector< Tile > | tiles |
| size_t | num_rows_ = 0 |
| Wires | wires |
Static Public Attributes | |
| static constexpr size_t | NUM_WIRES = NUM_WIRES_ |
| static constexpr size_t | NUM_NON_GATE_SELECTORS = NON_GATE_SELECTORS<FF, NUM_WIRES>.size() |
Private Member Functions | |
| void | copy_gate_columns_from (const ExecutionTraceBlock &other) |
| Tile & | tile_for_append () |
| template<size_t... Is> | |
| std::array< SelectorColumn< FF, NUM_WIRES >, NUM_NON_GATE_SELECTORS > | make_selector_columns (std::index_sequence< Is... >) |
Private Attributes | |
| std::array< SelectorColumn< FF, NUM_WIRES >, NUM_NON_GATE_SELECTORS > | columns_ |
| std::vector< GateSelectorColumn< FF, NUM_WIRES > > | gate_columns_ |
Row-major storage for the gates of one execution trace block: one vector of GateRow. Column accessors (wires, q_m..q_5, gate selectors) return persistent views into the rows.
Definition at line 368 of file execution_trace_block.hpp.
| using bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::Row = GateRow<FF, NUM_WIRES> |
Definition at line 374 of file execution_trace_block.hpp.
| using bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::SelectorType = Selector<FF> |
Definition at line 373 of file execution_trace_block.hpp.
| using bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::Tile = GateTile<FF, NUM_WIRES> |
Definition at line 375 of file execution_trace_block.hpp.
| using bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::Wires = std::array<WireType, NUM_WIRES> |
Definition at line 377 of file execution_trace_block.hpp.
| using bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::WireType = WireColumn<FF, NUM_WIRES> |
Definition at line 376 of file execution_trace_block.hpp.
|
default |
|
inline |
Construct a block that owns the listed gate kinds.
Definition at line 384 of file execution_trace_block.hpp.
|
inline |
Definition at line 393 of file execution_trace_block.hpp.
|
inlinenoexcept |
Definition at line 415 of file execution_trace_block.hpp.
|
default |
|
inline |
Append one complete gate: wires, non-gate selectors, and the (single) active gate selector.
Definition at line 478 of file execution_trace_block.hpp.
|
inlineprivate |
Definition at line 605 of file execution_trace_block.hpp.
|
inline |
Release gate memory. Caches block size so size() still works.
Called after trace data has been copied to prover polynomials.
Definition at line 572 of file execution_trace_block.hpp.
|
inline |
Reference to this block's selector view for kind; aborts if the block does not own it. For cross-block reads, use read_gate_selector instead.
Definition at line 528 of file execution_trace_block.hpp.
|
inline |
All selectors of this block: the non-gate selectors followed by the owned gate selectors.
Definition at line 542 of file execution_trace_block.hpp.
|
inlineprivate |
Definition at line 626 of file execution_trace_block.hpp.
|
inline |
Definition at line 402 of file execution_trace_block.hpp.
|
inlinenoexcept |
Definition at line 424 of file execution_trace_block.hpp.
|
inline |
Definition at line 466 of file execution_trace_block.hpp.
|
inline |
Definition at line 514 of file execution_trace_block.hpp.
|
inline |
Definition at line 504 of file execution_trace_block.hpp.
|
inline |
Definition at line 589 of file execution_trace_block.hpp.
|
inline |
Definition at line 590 of file execution_trace_block.hpp.
|
inline |
Definition at line 591 of file execution_trace_block.hpp.
|
inline |
Definition at line 592 of file execution_trace_block.hpp.
|
inline |
Definition at line 593 of file execution_trace_block.hpp.
|
inline |
Definition at line 588 of file execution_trace_block.hpp.
|
inline |
Definition at line 587 of file execution_trace_block.hpp.
|
inline |
Reserve capacity for num_rows gates.
Definition at line 502 of file execution_trace_block.hpp.
|
inline |
Definition at line 473 of file execution_trace_block.hpp.
|
inlineprivate |
Definition at line 617 of file execution_trace_block.hpp.
|
inline |
Definition at line 464 of file execution_trace_block.hpp.
|
inline |
Definition at line 457 of file execution_trace_block.hpp.
|
inline |
Definition at line 443 of file execution_trace_block.hpp.
|
inline |
Definition at line 584 of file execution_trace_block.hpp.
|
inline |
Definition at line 581 of file execution_trace_block.hpp.
|
inline |
Definition at line 583 of file execution_trace_block.hpp.
|
inline |
Definition at line 582 of file execution_trace_block.hpp.
| size_t bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::cached_size_ = 0 |
Definition at line 453 of file execution_trace_block.hpp.
|
private |
Definition at line 634 of file execution_trace_block.hpp.
| bool bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::data_freed_ = false |
Definition at line 454 of file execution_trace_block.hpp.
|
private |
Definition at line 637 of file execution_trace_block.hpp.
|
staticconstexpr |
Definition at line 371 of file execution_trace_block.hpp.
| size_t bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::num_rows_ = 0 |
Definition at line 596 of file execution_trace_block.hpp.
|
staticconstexpr |
Definition at line 370 of file execution_trace_block.hpp.
| std::vector<Tile> bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::tiles |
Definition at line 595 of file execution_trace_block.hpp.
| uint32_t bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::trace_offset_ = std::numeric_limits<uint32_t>::max() |
Definition at line 455 of file execution_trace_block.hpp.
| Wires bb::ExecutionTraceBlock< FF, NUM_WIRES_ >::wires |
Definition at line 599 of file execution_trace_block.hpp.