Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
lookups_execution.hpp
Go to the documentation of this file.
1// AUTOGENERATED FILE
2#pragma once
3
4#include <cstddef>
5#include <string_view>
6#include <tuple>
7
8#include "../columns.hpp"
11
12namespace bb::avm2 {
13
15
17 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_BYTECODE_RETRIEVAL_RESULT";
18 static constexpr std::string_view RELATION_NAME = "execution";
19 static constexpr size_t LOOKUP_TUPLE_SIZE = 9;
20 static constexpr Column SRC_SELECTOR = Column::execution_sel_first_row_in_context;
21 static constexpr Column DST_SELECTOR = Column::bc_retrieval_sel;
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
34 };
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
45 };
46};
47
50template <typename FF_>
53
55
57 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_INSTRUCTION_FETCHING_RESULT";
58 static constexpr std::string_view RELATION_NAME = "execution";
59 static constexpr size_t LOOKUP_TUPLE_SIZE = 3;
60 static constexpr Column SRC_SELECTOR = Column::execution_sel_bytecode_retrieval_success;
61 static constexpr Column DST_SELECTOR = Column::instr_fetching_sel;
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
68 };
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
73 };
74};
75
78template <typename FF_>
81
83
85 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_INSTRUCTION_FETCHING_BODY";
86 static constexpr std::string_view RELATION_NAME = "execution";
87 static constexpr size_t LOOKUP_TUPLE_SIZE = 10;
88 static constexpr Column SRC_SELECTOR = Column::execution_sel_instruction_fetching_success;
89 static constexpr Column DST_SELECTOR = Column::instr_fetching_sel;
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_exec_opcode,
96 ColumnAndShifts::execution_instr_size,
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 };
104 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
105 ColumnAndShifts::instr_fetching_pc,
106 ColumnAndShifts::instr_fetching_bytecode_id,
107 ColumnAndShifts::instr_fetching_exec_opcode,
108 ColumnAndShifts::instr_fetching_instr_size,
109 ColumnAndShifts::instr_fetching_addressing_mode,
110 ColumnAndShifts::instr_fetching_op1,
111 ColumnAndShifts::instr_fetching_op2,
112 ColumnAndShifts::instr_fetching_op3,
113 ColumnAndShifts::instr_fetching_op4,
114 ColumnAndShifts::instr_fetching_op5
115 };
116};
117
120template <typename FF_>
123
125
127 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_EXEC_SPEC_READ";
128 static constexpr std::string_view RELATION_NAME = "execution";
129 static constexpr size_t LOOKUP_TUPLE_SIZE = 29;
130 static constexpr Column SRC_SELECTOR = Column::execution_sel_instruction_fetching_success;
131 static constexpr Column DST_SELECTOR = Column::precomputed_sel_exec_spec;
132 static constexpr Column COUNTS = Column::lookup_execution_exec_spec_read_counts;
133 static constexpr Column INVERSES = Column::lookup_execution_exec_spec_read_inv;
134 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
135 ColumnAndShifts::execution_exec_opcode,
136 ColumnAndShifts::execution_opcode_gas,
137 ColumnAndShifts::execution_base_da_gas,
138 ColumnAndShifts::execution_dynamic_l2_gas,
139 ColumnAndShifts::execution_dynamic_da_gas,
140 ColumnAndShifts::execution_sel_op_is_address_0_,
141 ColumnAndShifts::execution_sel_op_is_address_1_,
142 ColumnAndShifts::execution_sel_op_is_address_2_,
143 ColumnAndShifts::execution_sel_op_is_address_3_,
144 ColumnAndShifts::execution_sel_op_is_address_4_,
145 ColumnAndShifts::execution_subtrace_id,
146 ColumnAndShifts::execution_subtrace_operation_id,
147 ColumnAndShifts::execution_dyn_gas_id,
148 ColumnAndShifts::execution_sel_mem_op_reg_0_,
149 ColumnAndShifts::execution_sel_mem_op_reg_1_,
150 ColumnAndShifts::execution_sel_mem_op_reg_2_,
151 ColumnAndShifts::execution_sel_mem_op_reg_3_,
152 ColumnAndShifts::execution_rw_reg_0_,
153 ColumnAndShifts::execution_rw_reg_1_,
154 ColumnAndShifts::execution_rw_reg_2_,
155 ColumnAndShifts::execution_rw_reg_3_,
156 ColumnAndShifts::execution_sel_tag_check_reg_0_,
157 ColumnAndShifts::execution_sel_tag_check_reg_1_,
158 ColumnAndShifts::execution_sel_tag_check_reg_2_,
159 ColumnAndShifts::execution_sel_tag_check_reg_3_,
160 ColumnAndShifts::execution_expected_tag_reg_0_,
161 ColumnAndShifts::execution_expected_tag_reg_1_,
162 ColumnAndShifts::execution_expected_tag_reg_2_,
163 ColumnAndShifts::execution_expected_tag_reg_3_
164 };
165 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
166 ColumnAndShifts::precomputed_idx,
167 ColumnAndShifts::precomputed_exec_opcode_opcode_gas,
168 ColumnAndShifts::precomputed_exec_opcode_base_da_gas,
169 ColumnAndShifts::precomputed_exec_opcode_dynamic_l2_gas,
170 ColumnAndShifts::precomputed_exec_opcode_dynamic_da_gas,
171 ColumnAndShifts::precomputed_sel_op_is_address_0_,
172 ColumnAndShifts::precomputed_sel_op_is_address_1_,
173 ColumnAndShifts::precomputed_sel_op_is_address_2_,
174 ColumnAndShifts::precomputed_sel_op_is_address_3_,
175 ColumnAndShifts::precomputed_sel_op_is_address_4_,
176 ColumnAndShifts::precomputed_subtrace_id,
177 ColumnAndShifts::precomputed_subtrace_operation_id,
178 ColumnAndShifts::precomputed_dyn_gas_id,
179 ColumnAndShifts::precomputed_sel_mem_op_reg_0_,
180 ColumnAndShifts::precomputed_sel_mem_op_reg_1_,
181 ColumnAndShifts::precomputed_sel_mem_op_reg_2_,
182 ColumnAndShifts::precomputed_sel_mem_op_reg_3_,
183 ColumnAndShifts::precomputed_rw_reg_0_,
184 ColumnAndShifts::precomputed_rw_reg_1_,
185 ColumnAndShifts::precomputed_rw_reg_2_,
186 ColumnAndShifts::precomputed_rw_reg_3_,
187 ColumnAndShifts::precomputed_sel_tag_check_reg_0_,
188 ColumnAndShifts::precomputed_sel_tag_check_reg_1_,
189 ColumnAndShifts::precomputed_sel_tag_check_reg_2_,
190 ColumnAndShifts::precomputed_sel_tag_check_reg_3_,
191 ColumnAndShifts::precomputed_expected_tag_reg_0_,
192 ColumnAndShifts::precomputed_expected_tag_reg_1_,
193 ColumnAndShifts::precomputed_expected_tag_reg_2_,
194 ColumnAndShifts::precomputed_expected_tag_reg_3_
195 };
196};
197
199template <typename FF_>
201
203
205 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_CHECK_RADIX_GT_256";
206 static constexpr std::string_view RELATION_NAME = "execution";
207 static constexpr size_t LOOKUP_TUPLE_SIZE = 3;
208 static constexpr Column SRC_SELECTOR = Column::execution_sel_gas_to_radix;
209 static constexpr Column DST_SELECTOR = Column::gt_sel_others;
210 static constexpr Column COUNTS = Column::lookup_execution_check_radix_gt_256_counts;
211 static constexpr Column INVERSES = Column::lookup_execution_check_radix_gt_256_inv;
212 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
213 ColumnAndShifts::execution_register_1_,
214 ColumnAndShifts::execution_two_five_six,
215 ColumnAndShifts::execution_sel_radix_gt_256
216 };
217 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::gt_input_a,
218 ColumnAndShifts::gt_input_b,
219 ColumnAndShifts::gt_res };
220};
221
223template <typename FF_>
226
228
230 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_GET_P_LIMBS";
231 static constexpr std::string_view RELATION_NAME = "execution";
232 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
233 static constexpr Column SRC_SELECTOR = Column::execution_sel_lookup_num_p_limbs;
234 static constexpr Column DST_SELECTOR = Column::precomputed_sel_to_radix_p_limb_counts;
235 static constexpr Column COUNTS = Column::lookup_execution_get_p_limbs_counts;
236 static constexpr Column INVERSES = Column::lookup_execution_get_p_limbs_inv;
237 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
238 ColumnAndShifts::execution_register_1_, ColumnAndShifts::execution_num_p_limbs
239 };
240 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
241 ColumnAndShifts::precomputed_idx, ColumnAndShifts::precomputed_to_radix_num_limbs_for_p
242 };
243};
244
246template <typename FF_>
248
250
252 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_GET_MAX_LIMBS";
253 static constexpr std::string_view RELATION_NAME = "execution";
254 static constexpr size_t LOOKUP_TUPLE_SIZE = 3;
255 static constexpr Column SRC_SELECTOR = Column::execution_sel_gas_to_radix;
256 static constexpr Column DST_SELECTOR = Column::gt_sel_others;
257 static constexpr Column COUNTS = Column::lookup_execution_get_max_limbs_counts;
258 static constexpr Column INVERSES = Column::lookup_execution_get_max_limbs_inv;
259 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
260 ColumnAndShifts::execution_register_2_,
261 ColumnAndShifts::execution_num_p_limbs,
262 ColumnAndShifts::execution_sel_use_num_limbs
263 };
264 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::gt_input_a,
265 ColumnAndShifts::gt_input_b,
266 ColumnAndShifts::gt_res };
267};
268
270template <typename FF_>
272
274
276 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_CHECK_WRITTEN_STORAGE_SLOT";
277 static constexpr std::string_view RELATION_NAME = "execution";
278 static constexpr size_t LOOKUP_TUPLE_SIZE = 8;
279 static constexpr Column SRC_SELECTOR = Column::execution_sel_gas_sstore;
280 static constexpr Column DST_SELECTOR = Column::indexed_tree_check_sel;
281 static constexpr Column COUNTS = Column::lookup_execution_check_written_storage_slot_counts;
282 static constexpr Column INVERSES = Column::lookup_execution_check_written_storage_slot_inv;
283 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
284 ColumnAndShifts::execution_dynamic_da_gas_factor,
285 ColumnAndShifts::execution_register_1_,
286 ColumnAndShifts::execution_prev_written_public_data_slots_tree_root,
287 ColumnAndShifts::execution_written_slots_tree_height,
288 ColumnAndShifts::execution_written_slots_merkle_separator,
289 ColumnAndShifts::execution_sel_gas_sstore,
290 ColumnAndShifts::execution_written_slots_tree_siloing_separator,
291 ColumnAndShifts::execution_contract_address
292 };
293 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
294 ColumnAndShifts::indexed_tree_check_not_exists,
295 ColumnAndShifts::indexed_tree_check_value,
296 ColumnAndShifts::indexed_tree_check_root,
297 ColumnAndShifts::indexed_tree_check_tree_height,
298 ColumnAndShifts::indexed_tree_check_merkle_hash_separator,
299 ColumnAndShifts::indexed_tree_check_sel_silo,
300 ColumnAndShifts::indexed_tree_check_siloing_separator,
301 ColumnAndShifts::indexed_tree_check_address
302 };
303};
304
307template <typename FF_>
310
312
314 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_DISPATCH_TO_ALU";
315 static constexpr std::string_view RELATION_NAME = "execution";
316 static constexpr size_t LOOKUP_TUPLE_SIZE = 8;
317 static constexpr Column SRC_SELECTOR = Column::execution_sel_exec_dispatch_alu;
318 static constexpr Column DST_SELECTOR = Column::alu_sel;
319 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_alu_counts;
320 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_alu_inv;
321 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
322 ColumnAndShifts::execution_register_0_, ColumnAndShifts::execution_mem_tag_reg_0_,
323 ColumnAndShifts::execution_register_1_, ColumnAndShifts::execution_mem_tag_reg_1_,
324 ColumnAndShifts::execution_register_2_, ColumnAndShifts::execution_mem_tag_reg_2_,
325 ColumnAndShifts::execution_subtrace_operation_id, ColumnAndShifts::execution_sel_opcode_error
326 };
327 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
328 ColumnAndShifts::alu_ia, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_ib, ColumnAndShifts::alu_ib_tag,
329 ColumnAndShifts::alu_ic, ColumnAndShifts::alu_ic_tag, ColumnAndShifts::alu_op_id, ColumnAndShifts::alu_sel_err
330 };
331};
332
334template <typename FF_>
336
338
340 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_DISPATCH_TO_BITWISE";
341 static constexpr std::string_view RELATION_NAME = "execution";
342 static constexpr size_t LOOKUP_TUPLE_SIZE = 8;
343 static constexpr Column SRC_SELECTOR = Column::execution_sel_exec_dispatch_bitwise;
344 static constexpr Column DST_SELECTOR = Column::bitwise_sel_bitwise_opcode;
345 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_bitwise_counts;
346 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_bitwise_inv;
347 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
348 ColumnAndShifts::execution_subtrace_operation_id, ColumnAndShifts::execution_sel_opcode_error,
349 ColumnAndShifts::execution_register_0_, ColumnAndShifts::execution_mem_tag_reg_0_,
350 ColumnAndShifts::execution_register_1_, ColumnAndShifts::execution_mem_tag_reg_1_,
351 ColumnAndShifts::execution_register_2_, ColumnAndShifts::execution_mem_tag_reg_2_
352 };
353 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
354 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_err, ColumnAndShifts::bitwise_ia,
355 ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_tag_b,
356 ColumnAndShifts::bitwise_ic, ColumnAndShifts::bitwise_tag_c
357 };
358};
359
361template <typename FF_>
364
366
368 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_DISPATCH_TO_CAST";
369 static constexpr std::string_view RELATION_NAME = "execution";
370 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
371 static constexpr Column SRC_SELECTOR = Column::execution_sel_exec_dispatch_cast;
372 static constexpr Column DST_SELECTOR = Column::alu_sel_op_truncate;
373 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_cast_counts;
374 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_cast_inv;
375 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
376 ColumnAndShifts::execution_register_0_,
377 ColumnAndShifts::execution_rop_2_,
378 ColumnAndShifts::execution_register_1_,
379 ColumnAndShifts::execution_mem_tag_reg_1_,
380 ColumnAndShifts::execution_sel_exec_dispatch_cast,
381 ColumnAndShifts::execution_sel_opcode_error
382 };
383 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
384 ColumnAndShifts::alu_ia, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_ic,
385 ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_sel, ColumnAndShifts::precomputed_zero
386 };
387};
388
390template <typename FF_>
393
395
397 static constexpr std::string_view NAME = "LOOKUP_EXECUTION_DISPATCH_TO_SET";
398 static constexpr std::string_view RELATION_NAME = "execution";
399 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
400 static constexpr Column SRC_SELECTOR = Column::execution_sel_exec_dispatch_set;
401 static constexpr Column DST_SELECTOR = Column::alu_sel_op_truncate;
402 static constexpr Column COUNTS = Column::lookup_execution_dispatch_to_set_counts;
403 static constexpr Column INVERSES = Column::lookup_execution_dispatch_to_set_inv;
404 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
405 ColumnAndShifts::execution_rop_2_,
406 ColumnAndShifts::execution_rop_1_,
407 ColumnAndShifts::execution_register_0_,
408 ColumnAndShifts::execution_mem_tag_reg_0_,
409 ColumnAndShifts::execution_sel_exec_dispatch_set,
410 ColumnAndShifts::execution_sel_opcode_error
411 };
412 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
413 ColumnAndShifts::alu_ia, ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_ic,
414 ColumnAndShifts::alu_ia_tag, ColumnAndShifts::alu_sel, ColumnAndShifts::precomputed_zero
415 };
416};
417
419template <typename FF_>
421
422} // namespace bb::avm2
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
Settings to be passed ot GenericLookupRelationImpl.