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

A table of ECC operations. More...

#include <ecc_ops_table.hpp>

Public Member Functions

size_t size () const
 
size_t num_subtables () const
 
auto & get () const
 
void push (const OpFormat &op)
 
void create_new_subtable (size_t size_hint=0)
 
const OpFormatoperator[] (size_t index) const
 
std::vector< OpFormatget_reconstructed () const
 
void merge (MergeSettings settings=MergeSettings::PREPEND)
 

Private Types

using Subtable = std::vector< OpFormat >
 

Private Attributes

std::deque< Subtabletable
 
Subtable current_subtable
 

Detailed Description

template<typename OpFormat>
class bb::EccOpsTable< OpFormat >

A table of ECC operations.

The table is constructed via concatenation of subtables of ECC operations. The table concatentation protocol (Merge protocol) requires that the concatenation be achieved via PRE-pending successive tables. To avoid the need for expensive memory reallocations associated with physically prepending, the subtables are stored as a std::deque that can be traversed to reconstruct the columns of the aggregate tables as needed (e.g. in corresponding polynomials).

Template Parameters
OpFormatFormat of the ECC operations stored in the table

Definition at line 115 of file ecc_ops_table.hpp.

Member Typedef Documentation

◆ Subtable

template<typename OpFormat >
using bb::EccOpsTable< OpFormat >::Subtable = std::vector<OpFormat>
private

Definition at line 116 of file ecc_ops_table.hpp.

Member Function Documentation

◆ create_new_subtable()

template<typename OpFormat >
void bb::EccOpsTable< OpFormat >::create_new_subtable ( size_t  size_hint = 0)
inline

Definition at line 143 of file ecc_ops_table.hpp.

◆ get()

template<typename OpFormat >
auto & bb::EccOpsTable< OpFormat >::get ( ) const
inline

Definition at line 134 of file ecc_ops_table.hpp.

◆ get_reconstructed()

template<typename OpFormat >
std::vector< OpFormat > bb::EccOpsTable< OpFormat >::get_reconstructed ( ) const
inline

Definition at line 166 of file ecc_ops_table.hpp.

◆ merge()

template<typename OpFormat >
void bb::EccOpsTable< OpFormat >::merge ( MergeSettings  settings = MergeSettings::PREPEND)
inline

Definition at line 181 of file ecc_ops_table.hpp.

◆ num_subtables()

template<typename OpFormat >
size_t bb::EccOpsTable< OpFormat >::num_subtables ( ) const
inline

Definition at line 132 of file ecc_ops_table.hpp.

◆ operator[]()

template<typename OpFormat >
const OpFormat & bb::EccOpsTable< OpFormat >::operator[] ( size_t  index) const
inline

Definition at line 150 of file ecc_ops_table.hpp.

◆ push()

template<typename OpFormat >
void bb::EccOpsTable< OpFormat >::push ( const OpFormat op)
inline

Definition at line 136 of file ecc_ops_table.hpp.

◆ size()

template<typename OpFormat >
size_t bb::EccOpsTable< OpFormat >::size ( ) const
inline

Definition at line 120 of file ecc_ops_table.hpp.

Member Data Documentation

◆ current_subtable

template<typename OpFormat >
Subtable bb::EccOpsTable< OpFormat >::current_subtable
private

Definition at line 118 of file ecc_ops_table.hpp.

◆ table

template<typename OpFormat >
std::deque<Subtable> bb::EccOpsTable< OpFormat >::table
private

Definition at line 117 of file ecc_ops_table.hpp.


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