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

#include <ram_table.hpp>

Public Member Functions

 ram_table ()
 
 ram_table (Builder *builder, const size_t table_size)
 Construct a new ram table<Builder>::ram table object. It's dynamic memory!
 
 ram_table (const std::vector< field_pt > &table_entries)
 Construct a new ram table<Builder>::ram table object. It's dynamic memory!
 
 ram_table (const ram_table &other)
 Construct a new ram table<Builder>::ram table object.
 
 ram_table (ram_table &&other)
 Construct a new ram table<Builder>::ram table object.
 
void initialize_table () const
 internal method, is used to call Builder methods that will generate RAM table.
 
ram_tableoperator= (const ram_table &other)
 Copy assignment operator.
 
ram_tableoperator= (ram_table &&other)
 Move assignment operator.
 
field_pt read (const field_pt &index) const
 Read a field element from the RAM table at an index value.
 
void write (const field_pt &index, const field_pt &value)
 Write a field element from the RAM table at an index value.
 
size_t size () const
 
Builderget_context () const
 
bool check_indices_initialized () const
 

Private Types

typedef field_t< Builderfield_pt
 

Private Attributes

std::vector< field_pt_raw_entries
 
std::vector< OriginTag_tags
 
std::vector< bool > _index_initialized
 
size_t _length = 0
 
size_t _ram_id = 0
 
bool _ram_table_generated_in_builder = false
 
bool _all_entries_written_to_with_constant_index = false
 
Builder_context = nullptr
 

Detailed Description

template<typename Builder>
class bb::stdlib::ram_table< Builder >

Definition at line 16 of file ram_table.hpp.

Member Typedef Documentation

◆ field_pt

template<typename Builder >
typedef field_t<Builder> bb::stdlib::ram_table< Builder >::field_pt
private

Definition at line 18 of file ram_table.hpp.

Constructor & Destructor Documentation

◆ ram_table() [1/5]

template<typename Builder >
bb::stdlib::ram_table< Builder >::ram_table ( )
inline

Definition at line 21 of file ram_table.hpp.

◆ ram_table() [2/5]

template<typename Builder >
bb::stdlib::ram_table< Builder >::ram_table ( Builder builder,
const size_t  table_size 
)

Construct a new ram table<Builder>::ram table object. It's dynamic memory!

Template Parameters
Builder
Parameters
table_entriesvector of field elements that will initialize the RAM table

Definition at line 23 of file ram_table.cpp.

◆ ram_table() [3/5]

template<typename Builder >
bb::stdlib::ram_table< Builder >::ram_table ( const std::vector< field_pt > &  table_entries)

Construct a new ram table<Builder>::ram table object. It's dynamic memory!

Template Parameters
Builder
Parameters
table_entriesvector of field elements that will initialize the RAM table

Definition at line 45 of file ram_table.cpp.

◆ ram_table() [4/5]

template<typename Builder >
bb::stdlib::ram_table< Builder >::ram_table ( const ram_table< Builder > &  other)

Construct a new ram table<Builder>::ram table object.

Template Parameters
Builder
Parameters
other

Definition at line 123 of file ram_table.cpp.

◆ ram_table() [5/5]

template<typename Builder >
bb::stdlib::ram_table< Builder >::ram_table ( ram_table< Builder > &&  other)

Construct a new ram table<Builder>::ram table object.

Template Parameters
Builder
Parameters
other

Definition at line 141 of file ram_table.cpp.

Member Function Documentation

◆ check_indices_initialized()

template<typename Builder >
bool bb::stdlib::ram_table< Builder >::check_indices_initialized ( ) const
inline

Definition at line 40 of file ram_table.hpp.

◆ get_context()

template<typename Builder >
Builder * bb::stdlib::ram_table< Builder >::get_context ( ) const
inline

Definition at line 38 of file ram_table.hpp.

◆ initialize_table()

template<typename Builder >
void bb::stdlib::ram_table< Builder >::initialize_table ( ) const

internal method, is used to call Builder methods that will generate RAM table.

initialize the table once we perform a read. This ensures we always have a pointer to a Builder. (if both the table entries and the index are constant, we don't need a builder as we can directly extract the desired value fram _raw_entries)

Template Parameters
Builder

Definition at line 82 of file ram_table.cpp.

◆ operator=() [1/2]

template<typename Builder >
ram_table< Builder > & bb::stdlib::ram_table< Builder >::operator= ( const ram_table< Builder > &  other)

Copy assignment operator.

Template Parameters
Builder
Parameters
other
Returns
ram_table<Builder>&

Definition at line 159 of file ram_table.cpp.

◆ operator=() [2/2]

template<typename Builder >
ram_table< Builder > & bb::stdlib::ram_table< Builder >::operator= ( ram_table< Builder > &&  other)

Move assignment operator.

Template Parameters
Builder
Parameters
other
Returns
ram_table<Builder>&

Definition at line 180 of file ram_table.cpp.

◆ read()

template<typename Builder >
field_t< Builder > bb::stdlib::ram_table< Builder >::read ( const field_pt index) const

Read a field element from the RAM table at an index value.

Template Parameters
Builder
Parameters
index
Returns
field_t<Builder>

Definition at line 200 of file ram_table.cpp.

◆ size()

template<typename Builder >
size_t bb::stdlib::ram_table< Builder >::size ( ) const
inline

Definition at line 36 of file ram_table.hpp.

◆ write()

template<typename Builder >
void bb::stdlib::ram_table< Builder >::write ( const field_pt index,
const field_pt value 
)

Write a field element from the RAM table at an index value.

Template Parameters
Builder
Parameters
index
value

Definition at line 244 of file ram_table.cpp.

Member Data Documentation

◆ _all_entries_written_to_with_constant_index

template<typename Builder >
bool bb::stdlib::ram_table< Builder >::_all_entries_written_to_with_constant_index = false
mutableprivate

Definition at line 64 of file ram_table.hpp.

◆ _context

template<typename Builder >
Builder* bb::stdlib::ram_table< Builder >::_context = nullptr
mutableprivate

Definition at line 65 of file ram_table.hpp.

◆ _index_initialized

template<typename Builder >
std::vector<bool> bb::stdlib::ram_table< Builder >::_index_initialized
mutableprivate

Definition at line 60 of file ram_table.hpp.

◆ _length

template<typename Builder >
size_t bb::stdlib::ram_table< Builder >::_length = 0
private

Definition at line 61 of file ram_table.hpp.

◆ _ram_id

template<typename Builder >
size_t bb::stdlib::ram_table< Builder >::_ram_id = 0
mutableprivate

Definition at line 62 of file ram_table.hpp.

◆ _ram_table_generated_in_builder

template<typename Builder >
bool bb::stdlib::ram_table< Builder >::_ram_table_generated_in_builder = false
mutableprivate

Definition at line 63 of file ram_table.hpp.

◆ _raw_entries

template<typename Builder >
std::vector<field_pt> bb::stdlib::ram_table< Builder >::_raw_entries
private

Definition at line 57 of file ram_table.hpp.

◆ _tags

template<typename Builder >
std::vector<OriginTag> bb::stdlib::ram_table< Builder >::_tags
mutableprivate

Definition at line 59 of file ram_table.hpp.


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