17template <
typename Flavor>
20 const size_t dyadic_circuit_size,
21 const size_t additional_offset = 0)
32 BB_ASSERT_GT(dyadic_circuit_size, tables_size + additional_offset);
36 const fr table_index(table.table_index);
38 for (
size_t i = 0; i < table.size(); ++i) {
39 table_polynomials[0].at(
offset) = table.column_1[i];
40 table_polynomials[1].at(
offset) = table.column_2[i];
41 table_polynomials[2].at(
offset) = table.column_3[i];
42 table_polynomials[3].at(
offset) = table_index;
55template <
typename Flavor>
59 [[maybe_unused]]
const size_t dyadic_circuit_size)
66 table.initialize_index_map();
68 for (
auto& gate_data : table.lookup_gates) {
70 auto table_entry = gate_data.to_table_components(table.use_twin_keys);
73 auto index_in_table = table.index_map[table_entry];
76 size_t index_in_poly = table_offset + index_in_table;
77 read_counts.
at(index_in_poly)++;
78 read_tags.
at(index_in_poly) = 1;
80 table_offset += table.size();
#define BB_ASSERT_GT(left, right,...)
uint32_t trace_offset() const
Fr & at(size_t index)
Our mutable accessor, unlike operator[]. We abuse precedent a bit to differentiate at() and operator[...
A template class for a reference array. Behaves as if std::array<T&, N> was possible.
std::vector< plookup::BasicTable > lookup_tables
size_t get_tables_size() const
Get combined size of all tables used in circuit.
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
Entry point for Barretenberg command-line interface.
void construct_lookup_table_polynomials(const RefArray< typename Flavor::Polynomial, 4 > &table_polynomials, const typename Flavor::CircuitBuilder &circuit, const size_t dyadic_circuit_size, const size_t additional_offset=0)
void construct_lookup_read_counts(typename Flavor::Polynomial &read_counts, typename Flavor::Polynomial &read_tags, typename Flavor::CircuitBuilder &circuit, const size_t dyadic_circuit_size)
Construct polynomial whose value at index i is the number of times the table entry at that index has ...
MegaTraceLookupBlock lookup