8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_BYTECODE_RETRIEVAL_RESULT";
22 static constexpr Column COUNTS = Column::lookup_execution_bytecode_retrieval_result_counts;
23 static constexpr Column INVERSES = Column::lookup_execution_bytecode_retrieval_result_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
25 ColumnAndShifts::execution_bytecode_id,
26 ColumnAndShifts::execution_contract_address,
27 ColumnAndShifts::execution_prev_nullifier_tree_root,
28 ColumnAndShifts::execution_prev_public_data_tree_root,
29 ColumnAndShifts::execution_prev_retrieved_bytecodes_tree_root,
30 ColumnAndShifts::execution_prev_retrieved_bytecodes_tree_size,
31 ColumnAndShifts::execution_retrieved_bytecodes_tree_root,
32 ColumnAndShifts::execution_retrieved_bytecodes_tree_size,
33 ColumnAndShifts::execution_sel_bytecode_retrieval_failure
35 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
36 ColumnAndShifts::bc_retrieval_bytecode_id,
37 ColumnAndShifts::bc_retrieval_address,
38 ColumnAndShifts::bc_retrieval_nullifier_tree_root,
39 ColumnAndShifts::bc_retrieval_public_data_tree_root,
40 ColumnAndShifts::bc_retrieval_prev_retrieved_bytecodes_tree_root,
41 ColumnAndShifts::bc_retrieval_prev_retrieved_bytecodes_tree_size,
42 ColumnAndShifts::bc_retrieval_next_retrieved_bytecodes_tree_root,
43 ColumnAndShifts::bc_retrieval_next_retrieved_bytecodes_tree_size,
44 ColumnAndShifts::bc_retrieval_error
50template <
typename FF_>
57 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_INSTRUCTION_FETCHING_RESULT";
62 static constexpr Column COUNTS = Column::lookup_execution_instruction_fetching_result_counts;
63 static constexpr Column INVERSES = Column::lookup_execution_instruction_fetching_result_inv;
64 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
65 ColumnAndShifts::execution_pc,
66 ColumnAndShifts::execution_bytecode_id,
67 ColumnAndShifts::execution_sel_instruction_fetching_failure
69 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
70 ColumnAndShifts::instr_fetching_pc,
71 ColumnAndShifts::instr_fetching_bytecode_id,
72 ColumnAndShifts::instr_fetching_sel_parsing_err
78template <
typename FF_>
85 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_INSTRUCTION_FETCHING_BODY";
90 static constexpr Column COUNTS = Column::lookup_execution_instruction_fetching_body_counts;
91 static constexpr Column INVERSES = Column::lookup_execution_instruction_fetching_body_inv;
92 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
93 ColumnAndShifts::execution_pc,
94 ColumnAndShifts::execution_bytecode_id,
95 ColumnAndShifts::execution_ex_opcode,
96 ColumnAndShifts::execution_instr_length,
97 ColumnAndShifts::execution_addressing_mode,
98 ColumnAndShifts::execution_op_0_,
99 ColumnAndShifts::execution_op_1_,
100 ColumnAndShifts::execution_op_2_,
101 ColumnAndShifts::execution_op_3_,
102 ColumnAndShifts::execution_op_4_,
103 ColumnAndShifts::execution_op_5_,
104 ColumnAndShifts::execution_op_6_
106 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
107 ColumnAndShifts::instr_fetching_pc,
108 ColumnAndShifts::instr_fetching_bytecode_id,
109 ColumnAndShifts::instr_fetching_exec_opcode,
110 ColumnAndShifts::instr_fetching_instr_size,
111 ColumnAndShifts::instr_fetching_addressing_mode,
112 ColumnAndShifts::instr_fetching_op1,
113 ColumnAndShifts::instr_fetching_op2,
114 ColumnAndShifts::instr_fetching_op3,
115 ColumnAndShifts::instr_fetching_op4,
116 ColumnAndShifts::instr_fetching_op5,
117 ColumnAndShifts::instr_fetching_op6,
118 ColumnAndShifts::instr_fetching_op7
124template <
typename FF_>
131 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_EXEC_SPEC_READ";
136 static constexpr Column COUNTS = Column::lookup_execution_exec_spec_read_counts;
138 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
139 ColumnAndShifts::execution_ex_opcode,
140 ColumnAndShifts::execution_opcode_gas,
141 ColumnAndShifts::execution_base_da_gas,
142 ColumnAndShifts::execution_dynamic_l2_gas,
143 ColumnAndShifts::execution_dynamic_da_gas,
144 ColumnAndShifts::execution_sel_op_is_address_0_,
145 ColumnAndShifts::execution_sel_op_is_address_1_,
146 ColumnAndShifts::execution_sel_op_is_address_2_,
147 ColumnAndShifts::execution_sel_op_is_address_3_,
148 ColumnAndShifts::execution_sel_op_is_address_4_,
149 ColumnAndShifts::execution_sel_op_is_address_5_,
150 ColumnAndShifts::execution_sel_op_is_address_6_,
151 ColumnAndShifts::execution_subtrace_id,
152 ColumnAndShifts::execution_subtrace_operation_id,
153 ColumnAndShifts::execution_dyn_gas_id,
154 ColumnAndShifts::execution_sel_mem_op_reg_0_,
155 ColumnAndShifts::execution_sel_mem_op_reg_1_,
156 ColumnAndShifts::execution_sel_mem_op_reg_2_,
157 ColumnAndShifts::execution_sel_mem_op_reg_3_,
158 ColumnAndShifts::execution_sel_mem_op_reg_4_,
159 ColumnAndShifts::execution_sel_mem_op_reg_5_,
160 ColumnAndShifts::execution_rw_reg_0_,
161 ColumnAndShifts::execution_rw_reg_1_,
162 ColumnAndShifts::execution_rw_reg_2_,
163 ColumnAndShifts::execution_rw_reg_3_,
164 ColumnAndShifts::execution_rw_reg_4_,
165 ColumnAndShifts::execution_rw_reg_5_,
166 ColumnAndShifts::execution_sel_tag_check_reg_0_,
167 ColumnAndShifts::execution_sel_tag_check_reg_1_,
168 ColumnAndShifts::execution_sel_tag_check_reg_2_,
169 ColumnAndShifts::execution_sel_tag_check_reg_3_,
170 ColumnAndShifts::execution_sel_tag_check_reg_4_,
171 ColumnAndShifts::execution_sel_tag_check_reg_5_,
172 ColumnAndShifts::execution_expected_tag_reg_0_,
173 ColumnAndShifts::execution_expected_tag_reg_1_,
174 ColumnAndShifts::execution_expected_tag_reg_2_,
175 ColumnAndShifts::execution_expected_tag_reg_3_,
176 ColumnAndShifts::execution_expected_tag_reg_4_,
177 ColumnAndShifts::execution_expected_tag_reg_5_
179 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
180 ColumnAndShifts::precomputed_clk,
181 ColumnAndShifts::precomputed_exec_opcode_opcode_gas,
182 ColumnAndShifts::precomputed_exec_opcode_base_da_gas,
183 ColumnAndShifts::precomputed_exec_opcode_dynamic_l2_gas,
184 ColumnAndShifts::precomputed_exec_opcode_dynamic_da_gas,
185 ColumnAndShifts::precomputed_sel_op_is_address_0_,
186 ColumnAndShifts::precomputed_sel_op_is_address_1_,
187 ColumnAndShifts::precomputed_sel_op_is_address_2_,
188 ColumnAndShifts::precomputed_sel_op_is_address_3_,
189 ColumnAndShifts::precomputed_sel_op_is_address_4_,
190 ColumnAndShifts::precomputed_sel_op_is_address_5_,
191 ColumnAndShifts::precomputed_sel_op_is_address_6_,
192 ColumnAndShifts::precomputed_subtrace_id,
193 ColumnAndShifts::precomputed_subtrace_operation_id,
194 ColumnAndShifts::precomputed_dyn_gas_id,
195 ColumnAndShifts::precomputed_sel_mem_op_reg_0_,
196 ColumnAndShifts::precomputed_sel_mem_op_reg_1_,
197 ColumnAndShifts::precomputed_sel_mem_op_reg_2_,
198 ColumnAndShifts::precomputed_sel_mem_op_reg_3_,
199 ColumnAndShifts::precomputed_sel_mem_op_reg_4_,
200 ColumnAndShifts::precomputed_sel_mem_op_reg_5_,
201 ColumnAndShifts::precomputed_rw_reg_0_,
202 ColumnAndShifts::precomputed_rw_reg_1_,
203 ColumnAndShifts::precomputed_rw_reg_2_,
204 ColumnAndShifts::precomputed_rw_reg_3_,
205 ColumnAndShifts::precomputed_rw_reg_4_,
206 ColumnAndShifts::precomputed_rw_reg_5_,
207 ColumnAndShifts::precomputed_sel_tag_check_reg_0_,
208 ColumnAndShifts::precomputed_sel_tag_check_reg_1_,
209 ColumnAndShifts::precomputed_sel_tag_check_reg_2_,
210 ColumnAndShifts::precomputed_sel_tag_check_reg_3_,
211 ColumnAndShifts::precomputed_sel_tag_check_reg_4_,
212 ColumnAndShifts::precomputed_sel_tag_check_reg_5_,
213 ColumnAndShifts::precomputed_expected_tag_reg_0_,
214 ColumnAndShifts::precomputed_expected_tag_reg_1_,
215 ColumnAndShifts::precomputed_expected_tag_reg_2_,
216 ColumnAndShifts::precomputed_expected_tag_reg_3_,
217 ColumnAndShifts::precomputed_expected_tag_reg_4_,
218 ColumnAndShifts::precomputed_expected_tag_reg_5_
223template <
typename FF_>
229 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_DYN_L2_FACTOR_BITWISE";
234 static constexpr Column COUNTS = Column::lookup_execution_dyn_l2_factor_bitwise_counts;
235 static constexpr Column INVERSES = Column::lookup_execution_dyn_l2_factor_bitwise_inv;
236 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
237 ColumnAndShifts::execution_mem_tag_reg_0_, ColumnAndShifts::execution_dynamic_l2_gas_factor
239 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
240 ColumnAndShifts::precomputed_clk, ColumnAndShifts::precomputed_tag_byte_length
246template <
typename FF_>
253 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_CHECK_RADIX_GT_256";
258 static constexpr Column COUNTS = Column::lookup_execution_check_radix_gt_256_counts;
259 static constexpr Column INVERSES = Column::lookup_execution_check_radix_gt_256_inv;
260 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
261 ColumnAndShifts::execution_register_1_,
262 ColumnAndShifts::execution_two_five_six,
263 ColumnAndShifts::execution_sel_radix_gt_256
265 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::gt_input_a,
266 ColumnAndShifts::gt_input_b,
267 ColumnAndShifts::gt_res };
271template <
typename FF_>
278 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_GET_P_LIMBS";
283 static constexpr Column COUNTS = Column::lookup_execution_get_p_limbs_counts;
285 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
286 ColumnAndShifts::execution_register_1_, ColumnAndShifts::execution_num_p_limbs
288 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
289 ColumnAndShifts::precomputed_clk, ColumnAndShifts::precomputed_to_radix_num_limbs_for_p
294template <
typename FF_>
300 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_GET_MAX_LIMBS";
305 static constexpr Column COUNTS = Column::lookup_execution_get_max_limbs_counts;
307 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
308 ColumnAndShifts::execution_register_2_,
309 ColumnAndShifts::execution_num_p_limbs,
310 ColumnAndShifts::execution_sel_use_num_limbs
312 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::gt_input_a,
313 ColumnAndShifts::gt_input_b,
314 ColumnAndShifts::gt_res };
318template <
typename FF_>
324 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_CHECK_WRITTEN_STORAGE_SLOT";
329 static constexpr Column COUNTS = Column::lookup_execution_check_written_storage_slot_counts;
330 static constexpr Column INVERSES = Column::lookup_execution_check_written_storage_slot_inv;
331 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
332 ColumnAndShifts::execution_contract_address,
333 ColumnAndShifts::execution_register_1_,
334 ColumnAndShifts::execution_dynamic_da_gas_factor,
335 ColumnAndShifts::execution_prev_written_public_data_slots_tree_root
337 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
338 ColumnAndShifts::written_public_data_slots_tree_check_address,
339 ColumnAndShifts::written_public_data_slots_tree_check_slot,
340 ColumnAndShifts::written_public_data_slots_tree_check_leaf_not_exists,
341 ColumnAndShifts::written_public_data_slots_tree_check_root
347template <
typename FF_>
354 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_DISPATCH_TO_ALU";
359 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_alu_counts;
361 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
362 ColumnAndShifts::execution_register_0_, ColumnAndShifts::execution_mem_tag_reg_0_,
363 ColumnAndShifts::execution_register_1_, ColumnAndShifts::execution_mem_tag_reg_1_,
364 ColumnAndShifts::execution_register_2_, ColumnAndShifts::execution_mem_tag_reg_2_,
365 ColumnAndShifts::execution_subtrace_operation_id, ColumnAndShifts::execution_sel_opcode_error
367 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
368 ColumnAndShifts::alu_ia, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_ib, ColumnAndShifts::alu_ib_tag,
369 ColumnAndShifts::alu_ic, ColumnAndShifts::alu_ic_tag, ColumnAndShifts::alu_op_id, ColumnAndShifts::alu_sel_err
374template <
typename FF_>
380 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_DISPATCH_TO_BITWISE";
385 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_bitwise_counts;
386 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_bitwise_inv;
387 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
388 ColumnAndShifts::execution_subtrace_operation_id, ColumnAndShifts::execution_sel_opcode_error,
389 ColumnAndShifts::execution_register_0_, ColumnAndShifts::execution_mem_tag_reg_0_,
390 ColumnAndShifts::execution_register_1_, ColumnAndShifts::execution_mem_tag_reg_1_,
391 ColumnAndShifts::execution_register_2_, ColumnAndShifts::execution_mem_tag_reg_2_
393 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
394 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_err, ColumnAndShifts::bitwise_acc_ia,
395 ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_acc_ib, ColumnAndShifts::bitwise_tag_b,
396 ColumnAndShifts::bitwise_acc_ic, ColumnAndShifts::bitwise_tag_c
401template <
typename FF_>
408 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_DISPATCH_TO_CAST";
413 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_cast_counts;
414 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_cast_inv;
415 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
416 ColumnAndShifts::execution_register_0_,
417 ColumnAndShifts::execution_rop_2_,
418 ColumnAndShifts::execution_register_1_,
419 ColumnAndShifts::execution_mem_tag_reg_1_,
420 ColumnAndShifts::execution_sel_exec_dispatch_cast,
421 ColumnAndShifts::execution_sel_opcode_error
423 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
424 ColumnAndShifts::alu_ia, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_ic,
425 ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_sel, ColumnAndShifts::precomputed_zero
430template <
typename FF_>
437 static constexpr std::string_view
NAME =
"LOOKUP_EXECUTION_DISPATCH_TO_SET";
442 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_set_counts;
444 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
445 ColumnAndShifts::execution_rop_2_,
446 ColumnAndShifts::execution_rop_1_,
447 ColumnAndShifts::execution_register_0_,
448 ColumnAndShifts::execution_mem_tag_reg_0_,
449 ColumnAndShifts::execution_sel_exec_dispatch_set,
450 ColumnAndShifts::execution_sel_opcode_error
452 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
453 ColumnAndShifts::alu_ia, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_ic,
454 ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_sel, ColumnAndShifts::precomputed_zero
459template <
typename FF_>
This file contains the template for the generic lookup that can be specialized to enforce various loo...
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR