35 return { (
key[0] * 3) + (
key[1] * 4) + (
id * 0x1337ULL), 0ULL };
49template <u
int64_t table_
id>
56 const size_t base = 2;
61 for (uint64_t i = 0; i < base; ++i) {
62 for (uint64_t j = 0; j < base; ++j) {
65 table.
column_3.emplace_back((i * 3) + (j * 4) + (
static_cast<uint64_t
>(
id) * 0x1337ULL));
87 const size_t number_of_elements_in_argument = 2;
88 const size_t number_of_lookups = 2;
89 MultiTable table(number_of_elements_in_argument,
90 number_of_elements_in_argument,
91 number_of_elements_in_argument,
94 table.
slice_sizes.emplace_back(number_of_elements_in_argument);
97 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