Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::MegaFlavor::PrecomputedEntities< DataType_ > Class Template Reference

A base class labelling precomputed entities and (ordered) subsets of interest. More...

#include <mega_flavor.hpp>

Inheritance diagram for bb::MegaFlavor::PrecomputedEntities< DataType_ >:
bb::MegaFlavor::AllEntities_< Commitment > bb::MegaFlavor::AllEntities_< DataType > bb::MegaFlavor::VerifierCommitments_< Commitment, VerificationKey > bb::MegaFlavor::CommitmentLabels bb::MegaRecursiveFlavor_< BuilderType >::AllValues

Public Types

using DataType = DataType_
 

Public Member Functions

bool operator== (const PrecomputedEntities &) const =default
 
 DEFINE_FLAVOR_MEMBERS (DataType, q_m, q_c, q_l, q_r, q_o, q_4, q_5, q_busread, q_lookup, q_arith, q_delta_range, q_elliptic, q_memory, q_nnf, q_poseidon2_external, q_poseidon2_external_initial, q_poseidon2_quad_internal, q_poseidon2_quad_internal_terminal, q_poseidon2_transition_entry, sigma_1, sigma_2, sigma_3, sigma_4, id_1, id_2, id_3, id_4, table_1, table_2, table_3, table_4, lagrange_first, lagrange_last, lagrange_ecc_op, databus_id) auto get_non_gate_selectors()
 
auto get_gate_selectors ()
 
auto get_selectors ()
 
auto get_sigmas ()
 
auto get_ids ()
 
auto get_tables ()
 

Detailed Description

template<typename DataType_>
class bb::MegaFlavor::PrecomputedEntities< DataType_ >

A base class labelling precomputed entities and (ordered) subsets of interest.

Used to build the proving key and verification key.

These polynomials fall into several categories based on their origin:

  • Circuit selectors (q_m, q_c, q_l, q_r, q_o, q_4, q_5, q_busread, q_lookup, q_arith, q_delta_range, q_elliptic, q_memory, q_nnf, q_poseidon2_external, q_poseidon2_external_initial, q_poseidon2_quad_internal, q_poseidon2_quad_internal_terminal, q_poseidon2_transition_entry): Populated directly from the circuit builder's execution trace blocks.
  • Permutation polynomials (sigma_1-4, id_1-4): Computed from wire copy cycles.
  • Table polynomials (table_1-4): Populated from lookup tables in the circuit.
  • Lagrange polynomials (lagrange_first, lagrange_last): Standard Lagrange basis polynomials.
  • Derived indicator polynomials (lagrange_ecc_op): Constructed during TraceToPolynomials as a binary indicator (1 inside the ecc_op block, 0 elsewhere). Unlike gate selectors, this is NOT stored in the circuit builder - it's derived from the ecc_op block's position and size.
  • Identity polynomial (databus_id): The identity polynomial id_i = i for databus lookups.

Definition at line 115 of file mega_flavor.hpp.

Member Typedef Documentation

◆ DataType

template<typename DataType_ >
using bb::MegaFlavor::PrecomputedEntities< DataType_ >::DataType = DataType_

Definition at line 118 of file mega_flavor.hpp.

Member Function Documentation

◆ DEFINE_FLAVOR_MEMBERS()

template<typename DataType_ >
bb::MegaFlavor::PrecomputedEntities< DataType_ >::DEFINE_FLAVOR_MEMBERS ( DataType  ,
q_m  ,
q_c  ,
q_l  ,
q_r  ,
q_o  ,
q_4  ,
q_5  ,
q_busread  ,
q_lookup  ,
q_arith  ,
q_delta_range  ,
q_elliptic  ,
q_memory  ,
q_nnf  ,
q_poseidon2_external  ,
q_poseidon2_external_initial  ,
q_poseidon2_quad_internal  ,
q_poseidon2_quad_internal_terminal  ,
q_poseidon2_transition_entry  ,
sigma_1  ,
sigma_2  ,
sigma_3  ,
sigma_4  ,
id_1  ,
id_2  ,
id_3  ,
id_4  ,
table_1  ,
table_2  ,
table_3  ,
table_4  ,
lagrange_first  ,
lagrange_last  ,
lagrange_ecc_op  ,
databus_id   
)
inline

Definition at line 119 of file mega_flavor.hpp.

◆ get_gate_selectors()

template<typename DataType_ >
auto bb::MegaFlavor::PrecomputedEntities< DataType_ >::get_gate_selectors ( )
inline

Definition at line 158 of file mega_flavor.hpp.

◆ get_ids()

template<typename DataType_ >
auto bb::MegaFlavor::PrecomputedEntities< DataType_ >::get_ids ( )
inline

Definition at line 178 of file mega_flavor.hpp.

◆ get_selectors()

template<typename DataType_ >
auto bb::MegaFlavor::PrecomputedEntities< DataType_ >::get_selectors ( )
inline

Definition at line 175 of file mega_flavor.hpp.

◆ get_sigmas()

template<typename DataType_ >
auto bb::MegaFlavor::PrecomputedEntities< DataType_ >::get_sigmas ( )
inline

Definition at line 177 of file mega_flavor.hpp.

◆ get_tables()

template<typename DataType_ >
auto bb::MegaFlavor::PrecomputedEntities< DataType_ >::get_tables ( )
inline

Definition at line 179 of file mega_flavor.hpp.

◆ operator==()

template<typename DataType_ >
bool bb::MegaFlavor::PrecomputedEntities< DataType_ >::operator== ( const PrecomputedEntities< DataType_ > &  ) const
default

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