Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::MegaTraceBlockData Struct Reference

A container indexed by the types of the blocks in the execution trace. More...

#include <mega_execution_trace.hpp>

Inheritance diagram for bb::MegaTraceBlockData:
bb::MegaExecutionTraceBlocks

Public Member Functions

std::vector< std::string_view > get_labels () const
 
auto get ()
 
auto get () const
 
auto get_gate_blocks () const
 
bool operator== (const MegaTraceBlockData &other) const =default
 

Public Attributes

MegaTraceBlock ecc_op {}
 
MegaTraceBlock busread { GateKind::BusRead }
 
MegaTraceBlock lookup { GateKind::Lookup }
 
MegaTraceBlock pub_inputs {}
 
MegaTraceBlock arithmetic { GateKind::Arith }
 
MegaTraceBlock delta_range { GateKind::DeltaRange }
 
MegaTraceBlock elliptic { GateKind::Elliptic }
 
MegaTraceBlock memory { GateKind::Memory }
 
MegaTraceBlock nnf { GateKind::Nnf }
 
MegaTraceBlock poseidon2_external { GateKind::Poseidon2Ext, GateKind::Poseidon2ExtInitial }
 
MegaTraceBlock poseidon2_quad_internal
 

Static Public Attributes

static constexpr size_t NUM_BLOCKS = 11
 

Detailed Description

A container indexed by the types of the blocks in the execution trace.

We instantiate this both to contain the actual gates of an execution trace, and also to describe different trace structures (i.e., sets of capacities for each block type, which we use to optimize the folding prover).

Note
The ecc_op block must be first in the execution trace so that the ecc_op_wire polynomials (populated by TraceToPolynomials::add_ecc_op_wires_to_prover_instance) align with the main wires via the ecc_op_wire[r] == w_shift[r] equality enforced by EccOpQueueRelation.
The ecc_op block does NOT have a gate selector stored in the builder. Instead, the lagrange_ecc_op selector polynomial is constructed during TraceToPolynomials::add_ecc_op_wires_to_prover_instance() as a binary indicator (1 inside the ecc_op block, 0 elsewhere).

Definition at line 36 of file mega_execution_trace.hpp.

Member Function Documentation

◆ get() [1/2]

auto bb::MegaTraceBlockData::get ( )
inline

Definition at line 68 of file mega_execution_trace.hpp.

◆ get() [2/2]

auto bb::MegaTraceBlockData::get ( ) const
inline

Definition at line 83 of file mega_execution_trace.hpp.

◆ get_gate_blocks()

auto bb::MegaTraceBlockData::get_gate_blocks ( ) const
inline

Definition at line 98 of file mega_execution_trace.hpp.

◆ get_labels()

std::vector< std::string_view > bb::MegaTraceBlockData::get_labels ( ) const
inline

Definition at line 53 of file mega_execution_trace.hpp.

◆ operator==()

Member Data Documentation

◆ arithmetic

MegaTraceBlock bb::MegaTraceBlockData::arithmetic { GateKind::Arith }

Definition at line 41 of file mega_execution_trace.hpp.

◆ busread

MegaTraceBlock bb::MegaTraceBlockData::busread { GateKind::BusRead }

Definition at line 38 of file mega_execution_trace.hpp.

◆ delta_range

MegaTraceBlock bb::MegaTraceBlockData::delta_range { GateKind::DeltaRange }

Definition at line 42 of file mega_execution_trace.hpp.

◆ ecc_op

MegaTraceBlock bb::MegaTraceBlockData::ecc_op {}

Definition at line 37 of file mega_execution_trace.hpp.

◆ elliptic

MegaTraceBlock bb::MegaTraceBlockData::elliptic { GateKind::Elliptic }

Definition at line 43 of file mega_execution_trace.hpp.

◆ lookup

MegaTraceBlock bb::MegaTraceBlockData::lookup { GateKind::Lookup }

Definition at line 39 of file mega_execution_trace.hpp.

◆ memory

MegaTraceBlock bb::MegaTraceBlockData::memory { GateKind::Memory }

Definition at line 44 of file mega_execution_trace.hpp.

◆ nnf

MegaTraceBlock bb::MegaTraceBlockData::nnf { GateKind::Nnf }

Definition at line 45 of file mega_execution_trace.hpp.

◆ NUM_BLOCKS

constexpr size_t bb::MegaTraceBlockData::NUM_BLOCKS = 11
staticconstexpr

Definition at line 51 of file mega_execution_trace.hpp.

◆ poseidon2_external

MegaTraceBlock bb::MegaTraceBlockData::poseidon2_external { GateKind::Poseidon2Ext, GateKind::Poseidon2ExtInitial }

Definition at line 46 of file mega_execution_trace.hpp.

◆ poseidon2_quad_internal

MegaTraceBlock bb::MegaTraceBlockData::poseidon2_quad_internal

◆ pub_inputs

MegaTraceBlock bb::MegaTraceBlockData::pub_inputs {}

Definition at line 40 of file mega_execution_trace.hpp.


The documentation for this struct was generated from the following file: