34 return {
key[0] * 3 +
key[1] * 4 +
id * 0x1337ULL, 0ULL };
48template <u
int64_t table_
id>
55 const size_t base = 1 << 1;
60 for (uint64_t i = 0; i < base; ++i) {
61 for (uint64_t j = 0; j < base; ++j) {
64 table.
column_3.emplace_back(i * 3 + j * 4 +
static_cast<uint64_t
>(
id) * 0x1337ULL);
86 const size_t number_of_elements_in_argument = 1 << 1;
87 const size_t number_of_lookups = 2;
88 MultiTable table(number_of_elements_in_argument,
89 number_of_elements_in_argument,
90 number_of_elements_in_argument,
93 table.
slice_sizes.emplace_back(number_of_elements_in_argument);
96 table.
slice_sizes.emplace_back(number_of_elements_in_argument);
#define BB_ASSERT_EQ(actual, expected,...)
std::array< bb::fr, 2 > get_value_from_key(const std::array< uint64_t, 2 > key)
Lookup the value corresponding to a specific key.
MultiTable get_honk_dummy_multitable()
Create a multitable for filling UltraHonk polynomials with non-zero values.
BasicTable generate_honk_dummy_table(const BasicTableId id, const size_t table_index)
Generate the whole table.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
A basic table from which we can perform lookups (for example, an xor table)
bb::fr column_2_step_size
bb::fr column_1_step_size
std::vector< bb::fr > column_3
std::vector< bb::fr > column_2
std::array< bb::fr, 2 >(* get_values_from_key)(const std::array< uint64_t, 2 >)
std::vector< bb::fr > column_1
bb::fr column_3_step_size
Container for managing multiple BasicTables plus the data needed to combine basic table outputs (e....
std::vector< BasicTableId > basic_table_ids
std::vector< uint64_t > slice_sizes
std::vector< table_out(*)(table_in)> get_table_values