22 const bool is_2_to_1_lookup)
32 for (
size_t i = 0; i < lookup_data[ColumnIdx::C1].size(); ++i) {
33 lookup[ColumnIdx::C1].emplace_back(
field_t<Builder>(ctx, lookup_data[ColumnIdx::C1][i]));
34 lookup[ColumnIdx::C2].emplace_back(
field_t<Builder>(ctx, lookup_data[ColumnIdx::C2][i]));
35 lookup[ColumnIdx::C3].emplace_back(
field_t<Builder>(ctx, lookup_data[ColumnIdx::C3][i]));
43 lhs_index = ctx->put_constant_variable(key_a.
get_value());
46 rhs_index = ctx->put_constant_variable(key_b.
get_value());
50 if (rhs_index == stdlib::IS_CONSTANT) {
54 const auto accumulator_witnesses =
55 ctx->create_gates_from_plookup_accumulators(
id, lookup_data, lhs_index, key_b_witness);
57 for (
size_t i = 0; i < lookup_data[ColumnIdx::C1].size(); ++i) {
58 lookup[ColumnIdx::C1].emplace_back(
60 lookup[ColumnIdx::C2].emplace_back(
62 lookup[ColumnIdx::C3].emplace_back(
ReadData< bb::fr > get_lookup_accumulators(const MultiTableId id, const fr &key_a, const fr &key_b, const bool is_2_to_1_lookup)
Given a table ID and the key(s) for a key-value lookup, return the lookup accumulators.