8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_01";
22 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_01_counts;
23 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_01_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
25 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
26 ColumnAndShifts::keccakf1600_state_in_00,
27 ColumnAndShifts::keccakf1600_state_in_01,
28 ColumnAndShifts::keccakf1600_theta_xor_01,
29 ColumnAndShifts::keccakf1600_tag_u64
31 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
32 ColumnAndShifts::bitwise_acc_ia,
33 ColumnAndShifts::bitwise_acc_ib,
34 ColumnAndShifts::bitwise_acc_ic,
35 ColumnAndShifts::bitwise_tag_a };
39template <
typename FF_>
45 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_02";
50 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_02_counts;
51 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_02_inv;
52 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
53 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
54 ColumnAndShifts::keccakf1600_theta_xor_01,
55 ColumnAndShifts::keccakf1600_state_in_02,
56 ColumnAndShifts::keccakf1600_theta_xor_02,
57 ColumnAndShifts::keccakf1600_tag_u64
59 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
60 ColumnAndShifts::bitwise_acc_ia,
61 ColumnAndShifts::bitwise_acc_ib,
62 ColumnAndShifts::bitwise_acc_ic,
63 ColumnAndShifts::bitwise_tag_a };
67template <
typename FF_>
73 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_03";
78 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_03_counts;
79 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_03_inv;
80 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
81 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
82 ColumnAndShifts::keccakf1600_theta_xor_02,
83 ColumnAndShifts::keccakf1600_state_in_03,
84 ColumnAndShifts::keccakf1600_theta_xor_03,
85 ColumnAndShifts::keccakf1600_tag_u64
87 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
88 ColumnAndShifts::bitwise_acc_ia,
89 ColumnAndShifts::bitwise_acc_ib,
90 ColumnAndShifts::bitwise_acc_ic,
91 ColumnAndShifts::bitwise_tag_a };
95template <
typename FF_>
101 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_ROW_0";
106 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_0_counts;
107 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_0_inv;
108 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
109 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
110 ColumnAndShifts::keccakf1600_theta_xor_03,
111 ColumnAndShifts::keccakf1600_state_in_04,
112 ColumnAndShifts::keccakf1600_theta_xor_row_0,
113 ColumnAndShifts::keccakf1600_tag_u64
115 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
116 ColumnAndShifts::bitwise_acc_ia,
117 ColumnAndShifts::bitwise_acc_ib,
118 ColumnAndShifts::bitwise_acc_ic,
119 ColumnAndShifts::bitwise_tag_a };
123template <
typename FF_>
130 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_11";
135 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_11_counts;
137 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
138 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
139 ColumnAndShifts::keccakf1600_state_in_10,
140 ColumnAndShifts::keccakf1600_state_in_11,
141 ColumnAndShifts::keccakf1600_theta_xor_11,
142 ColumnAndShifts::keccakf1600_tag_u64
144 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
145 ColumnAndShifts::bitwise_acc_ia,
146 ColumnAndShifts::bitwise_acc_ib,
147 ColumnAndShifts::bitwise_acc_ic,
148 ColumnAndShifts::bitwise_tag_a };
152template <
typename FF_>
158 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_12";
163 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_12_counts;
165 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
166 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
167 ColumnAndShifts::keccakf1600_theta_xor_11,
168 ColumnAndShifts::keccakf1600_state_in_12,
169 ColumnAndShifts::keccakf1600_theta_xor_12,
170 ColumnAndShifts::keccakf1600_tag_u64
172 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
173 ColumnAndShifts::bitwise_acc_ia,
174 ColumnAndShifts::bitwise_acc_ib,
175 ColumnAndShifts::bitwise_acc_ic,
176 ColumnAndShifts::bitwise_tag_a };
180template <
typename FF_>
186 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_13";
191 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_13_counts;
193 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
194 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
195 ColumnAndShifts::keccakf1600_theta_xor_12,
196 ColumnAndShifts::keccakf1600_state_in_13,
197 ColumnAndShifts::keccakf1600_theta_xor_13,
198 ColumnAndShifts::keccakf1600_tag_u64
200 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
201 ColumnAndShifts::bitwise_acc_ia,
202 ColumnAndShifts::bitwise_acc_ib,
203 ColumnAndShifts::bitwise_acc_ic,
204 ColumnAndShifts::bitwise_tag_a };
208template <
typename FF_>
214 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_ROW_1";
219 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_1_counts;
220 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_1_inv;
221 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
222 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
223 ColumnAndShifts::keccakf1600_theta_xor_13,
224 ColumnAndShifts::keccakf1600_state_in_14,
225 ColumnAndShifts::keccakf1600_theta_xor_row_1,
226 ColumnAndShifts::keccakf1600_tag_u64
228 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
229 ColumnAndShifts::bitwise_acc_ia,
230 ColumnAndShifts::bitwise_acc_ib,
231 ColumnAndShifts::bitwise_acc_ic,
232 ColumnAndShifts::bitwise_tag_a };
236template <
typename FF_>
243 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_21";
248 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_21_counts;
250 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
251 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
252 ColumnAndShifts::keccakf1600_state_in_20,
253 ColumnAndShifts::keccakf1600_state_in_21,
254 ColumnAndShifts::keccakf1600_theta_xor_21,
255 ColumnAndShifts::keccakf1600_tag_u64
257 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
258 ColumnAndShifts::bitwise_acc_ia,
259 ColumnAndShifts::bitwise_acc_ib,
260 ColumnAndShifts::bitwise_acc_ic,
261 ColumnAndShifts::bitwise_tag_a };
265template <
typename FF_>
271 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_22";
276 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_22_counts;
278 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
279 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
280 ColumnAndShifts::keccakf1600_theta_xor_21,
281 ColumnAndShifts::keccakf1600_state_in_22,
282 ColumnAndShifts::keccakf1600_theta_xor_22,
283 ColumnAndShifts::keccakf1600_tag_u64
285 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
286 ColumnAndShifts::bitwise_acc_ia,
287 ColumnAndShifts::bitwise_acc_ib,
288 ColumnAndShifts::bitwise_acc_ic,
289 ColumnAndShifts::bitwise_tag_a };
293template <
typename FF_>
299 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_23";
304 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_23_counts;
306 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
307 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
308 ColumnAndShifts::keccakf1600_theta_xor_22,
309 ColumnAndShifts::keccakf1600_state_in_23,
310 ColumnAndShifts::keccakf1600_theta_xor_23,
311 ColumnAndShifts::keccakf1600_tag_u64
313 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
314 ColumnAndShifts::bitwise_acc_ia,
315 ColumnAndShifts::bitwise_acc_ib,
316 ColumnAndShifts::bitwise_acc_ic,
317 ColumnAndShifts::bitwise_tag_a };
321template <
typename FF_>
327 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_ROW_2";
332 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_2_counts;
333 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_2_inv;
334 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
335 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
336 ColumnAndShifts::keccakf1600_theta_xor_23,
337 ColumnAndShifts::keccakf1600_state_in_24,
338 ColumnAndShifts::keccakf1600_theta_xor_row_2,
339 ColumnAndShifts::keccakf1600_tag_u64
341 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
342 ColumnAndShifts::bitwise_acc_ia,
343 ColumnAndShifts::bitwise_acc_ib,
344 ColumnAndShifts::bitwise_acc_ic,
345 ColumnAndShifts::bitwise_tag_a };
349template <
typename FF_>
356 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_31";
361 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_31_counts;
363 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
364 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
365 ColumnAndShifts::keccakf1600_state_in_30,
366 ColumnAndShifts::keccakf1600_state_in_31,
367 ColumnAndShifts::keccakf1600_theta_xor_31,
368 ColumnAndShifts::keccakf1600_tag_u64
370 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
371 ColumnAndShifts::bitwise_acc_ia,
372 ColumnAndShifts::bitwise_acc_ib,
373 ColumnAndShifts::bitwise_acc_ic,
374 ColumnAndShifts::bitwise_tag_a };
378template <
typename FF_>
384 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_32";
389 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_32_counts;
391 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
392 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
393 ColumnAndShifts::keccakf1600_theta_xor_31,
394 ColumnAndShifts::keccakf1600_state_in_32,
395 ColumnAndShifts::keccakf1600_theta_xor_32,
396 ColumnAndShifts::keccakf1600_tag_u64
398 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
399 ColumnAndShifts::bitwise_acc_ia,
400 ColumnAndShifts::bitwise_acc_ib,
401 ColumnAndShifts::bitwise_acc_ic,
402 ColumnAndShifts::bitwise_tag_a };
406template <
typename FF_>
412 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_33";
417 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_33_counts;
419 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
420 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
421 ColumnAndShifts::keccakf1600_theta_xor_32,
422 ColumnAndShifts::keccakf1600_state_in_33,
423 ColumnAndShifts::keccakf1600_theta_xor_33,
424 ColumnAndShifts::keccakf1600_tag_u64
426 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
427 ColumnAndShifts::bitwise_acc_ia,
428 ColumnAndShifts::bitwise_acc_ib,
429 ColumnAndShifts::bitwise_acc_ic,
430 ColumnAndShifts::bitwise_tag_a };
434template <
typename FF_>
440 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_ROW_3";
445 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_3_counts;
446 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_3_inv;
447 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
448 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
449 ColumnAndShifts::keccakf1600_theta_xor_33,
450 ColumnAndShifts::keccakf1600_state_in_34,
451 ColumnAndShifts::keccakf1600_theta_xor_row_3,
452 ColumnAndShifts::keccakf1600_tag_u64
454 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
455 ColumnAndShifts::bitwise_acc_ia,
456 ColumnAndShifts::bitwise_acc_ib,
457 ColumnAndShifts::bitwise_acc_ic,
458 ColumnAndShifts::bitwise_tag_a };
462template <
typename FF_>
469 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_41";
474 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_41_counts;
476 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
477 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
478 ColumnAndShifts::keccakf1600_state_in_40,
479 ColumnAndShifts::keccakf1600_state_in_41,
480 ColumnAndShifts::keccakf1600_theta_xor_41,
481 ColumnAndShifts::keccakf1600_tag_u64
483 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
484 ColumnAndShifts::bitwise_acc_ia,
485 ColumnAndShifts::bitwise_acc_ib,
486 ColumnAndShifts::bitwise_acc_ic,
487 ColumnAndShifts::bitwise_tag_a };
491template <
typename FF_>
497 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_42";
502 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_42_counts;
504 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
505 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
506 ColumnAndShifts::keccakf1600_theta_xor_41,
507 ColumnAndShifts::keccakf1600_state_in_42,
508 ColumnAndShifts::keccakf1600_theta_xor_42,
509 ColumnAndShifts::keccakf1600_tag_u64
511 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
512 ColumnAndShifts::bitwise_acc_ia,
513 ColumnAndShifts::bitwise_acc_ib,
514 ColumnAndShifts::bitwise_acc_ic,
515 ColumnAndShifts::bitwise_tag_a };
519template <
typename FF_>
525 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_43";
530 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_43_counts;
532 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
533 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
534 ColumnAndShifts::keccakf1600_theta_xor_42,
535 ColumnAndShifts::keccakf1600_state_in_43,
536 ColumnAndShifts::keccakf1600_theta_xor_43,
537 ColumnAndShifts::keccakf1600_tag_u64
539 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
540 ColumnAndShifts::bitwise_acc_ia,
541 ColumnAndShifts::bitwise_acc_ib,
542 ColumnAndShifts::bitwise_acc_ic,
543 ColumnAndShifts::bitwise_tag_a };
547template <
typename FF_>
553 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_XOR_ROW_4";
558 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_4_counts;
559 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_4_inv;
560 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
561 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
562 ColumnAndShifts::keccakf1600_theta_xor_43,
563 ColumnAndShifts::keccakf1600_state_in_44,
564 ColumnAndShifts::keccakf1600_theta_xor_row_4,
565 ColumnAndShifts::keccakf1600_tag_u64
567 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
568 ColumnAndShifts::bitwise_acc_ia,
569 ColumnAndShifts::bitwise_acc_ib,
570 ColumnAndShifts::bitwise_acc_ic,
571 ColumnAndShifts::bitwise_tag_a };
575template <
typename FF_>
582 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_0";
587 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_0_counts;
588 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_0_inv;
589 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
590 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
591 ColumnAndShifts::keccakf1600_theta_xor_row_4,
592 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_1,
593 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
594 ColumnAndShifts::keccakf1600_tag_u64
596 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
597 ColumnAndShifts::bitwise_acc_ia,
598 ColumnAndShifts::bitwise_acc_ib,
599 ColumnAndShifts::bitwise_acc_ic,
600 ColumnAndShifts::bitwise_tag_a };
605template <
typename FF_>
612 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_1";
617 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_1_counts;
618 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_1_inv;
619 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
620 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
621 ColumnAndShifts::keccakf1600_theta_xor_row_0,
622 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_2,
623 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
624 ColumnAndShifts::keccakf1600_tag_u64
626 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
627 ColumnAndShifts::bitwise_acc_ia,
628 ColumnAndShifts::bitwise_acc_ib,
629 ColumnAndShifts::bitwise_acc_ic,
630 ColumnAndShifts::bitwise_tag_a };
635template <
typename FF_>
642 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_2";
647 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_2_counts;
648 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_2_inv;
649 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
650 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
651 ColumnAndShifts::keccakf1600_theta_xor_row_1,
652 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_3,
653 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
654 ColumnAndShifts::keccakf1600_tag_u64
656 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
657 ColumnAndShifts::bitwise_acc_ia,
658 ColumnAndShifts::bitwise_acc_ib,
659 ColumnAndShifts::bitwise_acc_ic,
660 ColumnAndShifts::bitwise_tag_a };
665template <
typename FF_>
672 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_3";
677 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_3_counts;
678 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_3_inv;
679 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
680 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
681 ColumnAndShifts::keccakf1600_theta_xor_row_2,
682 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_4,
683 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
684 ColumnAndShifts::keccakf1600_tag_u64
686 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
687 ColumnAndShifts::bitwise_acc_ia,
688 ColumnAndShifts::bitwise_acc_ib,
689 ColumnAndShifts::bitwise_acc_ic,
690 ColumnAndShifts::bitwise_tag_a };
695template <
typename FF_>
702 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_4";
707 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_4_counts;
708 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_4_inv;
709 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
710 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
711 ColumnAndShifts::keccakf1600_theta_xor_row_3,
712 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_0,
713 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
714 ColumnAndShifts::keccakf1600_tag_u64
716 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
717 ColumnAndShifts::bitwise_acc_ia,
718 ColumnAndShifts::bitwise_acc_ib,
719 ColumnAndShifts::bitwise_acc_ic,
720 ColumnAndShifts::bitwise_tag_a };
725template <
typename FF_>
732 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_00";
737 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_00_counts;
738 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_00_inv;
739 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
740 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
741 ColumnAndShifts::keccakf1600_state_in_00,
742 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
743 ColumnAndShifts::keccakf1600_state_theta_00,
744 ColumnAndShifts::keccakf1600_tag_u64
746 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
747 ColumnAndShifts::bitwise_acc_ia,
748 ColumnAndShifts::bitwise_acc_ib,
749 ColumnAndShifts::bitwise_acc_ic,
750 ColumnAndShifts::bitwise_tag_a };
754template <
typename FF_>
761 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_01";
766 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_01_counts;
767 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_01_inv;
768 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
769 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
770 ColumnAndShifts::keccakf1600_state_in_01,
771 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
772 ColumnAndShifts::keccakf1600_state_theta_01,
773 ColumnAndShifts::keccakf1600_tag_u64
775 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
776 ColumnAndShifts::bitwise_acc_ia,
777 ColumnAndShifts::bitwise_acc_ib,
778 ColumnAndShifts::bitwise_acc_ic,
779 ColumnAndShifts::bitwise_tag_a };
783template <
typename FF_>
790 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_02";
795 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_02_counts;
796 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_02_inv;
797 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
798 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
799 ColumnAndShifts::keccakf1600_state_in_02,
800 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
801 ColumnAndShifts::keccakf1600_state_theta_02,
802 ColumnAndShifts::keccakf1600_tag_u64
804 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
805 ColumnAndShifts::bitwise_acc_ia,
806 ColumnAndShifts::bitwise_acc_ib,
807 ColumnAndShifts::bitwise_acc_ic,
808 ColumnAndShifts::bitwise_tag_a };
812template <
typename FF_>
819 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_03";
824 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_03_counts;
825 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_03_inv;
826 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
827 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
828 ColumnAndShifts::keccakf1600_state_in_03,
829 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
830 ColumnAndShifts::keccakf1600_state_theta_03,
831 ColumnAndShifts::keccakf1600_tag_u64
833 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
834 ColumnAndShifts::bitwise_acc_ia,
835 ColumnAndShifts::bitwise_acc_ib,
836 ColumnAndShifts::bitwise_acc_ic,
837 ColumnAndShifts::bitwise_tag_a };
841template <
typename FF_>
848 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_04";
853 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_04_counts;
854 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_04_inv;
855 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
856 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
857 ColumnAndShifts::keccakf1600_state_in_04,
858 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
859 ColumnAndShifts::keccakf1600_state_theta_04,
860 ColumnAndShifts::keccakf1600_tag_u64
862 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
863 ColumnAndShifts::bitwise_acc_ia,
864 ColumnAndShifts::bitwise_acc_ib,
865 ColumnAndShifts::bitwise_acc_ic,
866 ColumnAndShifts::bitwise_tag_a };
870template <
typename FF_>
877 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_10";
882 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_10_counts;
883 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_10_inv;
884 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
885 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
886 ColumnAndShifts::keccakf1600_state_in_10,
887 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
888 ColumnAndShifts::keccakf1600_state_theta_10,
889 ColumnAndShifts::keccakf1600_tag_u64
891 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
892 ColumnAndShifts::bitwise_acc_ia,
893 ColumnAndShifts::bitwise_acc_ib,
894 ColumnAndShifts::bitwise_acc_ic,
895 ColumnAndShifts::bitwise_tag_a };
899template <
typename FF_>
906 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_11";
911 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_11_counts;
912 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_11_inv;
913 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
914 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
915 ColumnAndShifts::keccakf1600_state_in_11,
916 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
917 ColumnAndShifts::keccakf1600_state_theta_11,
918 ColumnAndShifts::keccakf1600_tag_u64
920 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
921 ColumnAndShifts::bitwise_acc_ia,
922 ColumnAndShifts::bitwise_acc_ib,
923 ColumnAndShifts::bitwise_acc_ic,
924 ColumnAndShifts::bitwise_tag_a };
928template <
typename FF_>
935 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_12";
940 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_12_counts;
941 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_12_inv;
942 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
943 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
944 ColumnAndShifts::keccakf1600_state_in_12,
945 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
946 ColumnAndShifts::keccakf1600_state_theta_12,
947 ColumnAndShifts::keccakf1600_tag_u64
949 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
950 ColumnAndShifts::bitwise_acc_ia,
951 ColumnAndShifts::bitwise_acc_ib,
952 ColumnAndShifts::bitwise_acc_ic,
953 ColumnAndShifts::bitwise_tag_a };
957template <
typename FF_>
964 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_13";
969 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_13_counts;
970 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_13_inv;
971 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
972 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
973 ColumnAndShifts::keccakf1600_state_in_13,
974 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
975 ColumnAndShifts::keccakf1600_state_theta_13,
976 ColumnAndShifts::keccakf1600_tag_u64
978 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
979 ColumnAndShifts::bitwise_acc_ia,
980 ColumnAndShifts::bitwise_acc_ib,
981 ColumnAndShifts::bitwise_acc_ic,
982 ColumnAndShifts::bitwise_tag_a };
986template <
typename FF_>
993 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_14";
998 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_14_counts;
999 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_14_inv;
1000 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1001 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1002 ColumnAndShifts::keccakf1600_state_in_14,
1003 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
1004 ColumnAndShifts::keccakf1600_state_theta_14,
1005 ColumnAndShifts::keccakf1600_tag_u64
1007 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1008 ColumnAndShifts::bitwise_acc_ia,
1009 ColumnAndShifts::bitwise_acc_ib,
1010 ColumnAndShifts::bitwise_acc_ic,
1011 ColumnAndShifts::bitwise_tag_a };
1015template <
typename FF_>
1022 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_20";
1027 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_20_counts;
1029 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1030 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1031 ColumnAndShifts::keccakf1600_state_in_20,
1032 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
1033 ColumnAndShifts::keccakf1600_state_theta_20,
1034 ColumnAndShifts::keccakf1600_tag_u64
1036 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1037 ColumnAndShifts::bitwise_acc_ia,
1038 ColumnAndShifts::bitwise_acc_ib,
1039 ColumnAndShifts::bitwise_acc_ic,
1040 ColumnAndShifts::bitwise_tag_a };
1044template <
typename FF_>
1051 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_21";
1056 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_21_counts;
1058 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1059 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1060 ColumnAndShifts::keccakf1600_state_in_21,
1061 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
1062 ColumnAndShifts::keccakf1600_state_theta_21,
1063 ColumnAndShifts::keccakf1600_tag_u64
1065 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1066 ColumnAndShifts::bitwise_acc_ia,
1067 ColumnAndShifts::bitwise_acc_ib,
1068 ColumnAndShifts::bitwise_acc_ic,
1069 ColumnAndShifts::bitwise_tag_a };
1073template <
typename FF_>
1080 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_22";
1085 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_22_counts;
1087 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1088 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1089 ColumnAndShifts::keccakf1600_state_in_22,
1090 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
1091 ColumnAndShifts::keccakf1600_state_theta_22,
1092 ColumnAndShifts::keccakf1600_tag_u64
1094 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1095 ColumnAndShifts::bitwise_acc_ia,
1096 ColumnAndShifts::bitwise_acc_ib,
1097 ColumnAndShifts::bitwise_acc_ic,
1098 ColumnAndShifts::bitwise_tag_a };
1102template <
typename FF_>
1109 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_23";
1114 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_23_counts;
1116 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1117 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1118 ColumnAndShifts::keccakf1600_state_in_23,
1119 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
1120 ColumnAndShifts::keccakf1600_state_theta_23,
1121 ColumnAndShifts::keccakf1600_tag_u64
1123 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1124 ColumnAndShifts::bitwise_acc_ia,
1125 ColumnAndShifts::bitwise_acc_ib,
1126 ColumnAndShifts::bitwise_acc_ic,
1127 ColumnAndShifts::bitwise_tag_a };
1131template <
typename FF_>
1138 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_24";
1143 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_24_counts;
1145 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1146 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1147 ColumnAndShifts::keccakf1600_state_in_24,
1148 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
1149 ColumnAndShifts::keccakf1600_state_theta_24,
1150 ColumnAndShifts::keccakf1600_tag_u64
1152 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1153 ColumnAndShifts::bitwise_acc_ia,
1154 ColumnAndShifts::bitwise_acc_ib,
1155 ColumnAndShifts::bitwise_acc_ic,
1156 ColumnAndShifts::bitwise_tag_a };
1160template <
typename FF_>
1167 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_30";
1172 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_30_counts;
1174 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1175 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1176 ColumnAndShifts::keccakf1600_state_in_30,
1177 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
1178 ColumnAndShifts::keccakf1600_state_theta_30,
1179 ColumnAndShifts::keccakf1600_tag_u64
1181 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1182 ColumnAndShifts::bitwise_acc_ia,
1183 ColumnAndShifts::bitwise_acc_ib,
1184 ColumnAndShifts::bitwise_acc_ic,
1185 ColumnAndShifts::bitwise_tag_a };
1189template <
typename FF_>
1196 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_31";
1201 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_31_counts;
1203 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1204 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1205 ColumnAndShifts::keccakf1600_state_in_31,
1206 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
1207 ColumnAndShifts::keccakf1600_state_theta_31,
1208 ColumnAndShifts::keccakf1600_tag_u64
1210 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1211 ColumnAndShifts::bitwise_acc_ia,
1212 ColumnAndShifts::bitwise_acc_ib,
1213 ColumnAndShifts::bitwise_acc_ic,
1214 ColumnAndShifts::bitwise_tag_a };
1218template <
typename FF_>
1225 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_32";
1230 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_32_counts;
1232 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1233 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1234 ColumnAndShifts::keccakf1600_state_in_32,
1235 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
1236 ColumnAndShifts::keccakf1600_state_theta_32,
1237 ColumnAndShifts::keccakf1600_tag_u64
1239 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1240 ColumnAndShifts::bitwise_acc_ia,
1241 ColumnAndShifts::bitwise_acc_ib,
1242 ColumnAndShifts::bitwise_acc_ic,
1243 ColumnAndShifts::bitwise_tag_a };
1247template <
typename FF_>
1254 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_33";
1259 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_33_counts;
1261 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1262 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1263 ColumnAndShifts::keccakf1600_state_in_33,
1264 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
1265 ColumnAndShifts::keccakf1600_state_theta_33,
1266 ColumnAndShifts::keccakf1600_tag_u64
1268 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1269 ColumnAndShifts::bitwise_acc_ia,
1270 ColumnAndShifts::bitwise_acc_ib,
1271 ColumnAndShifts::bitwise_acc_ic,
1272 ColumnAndShifts::bitwise_tag_a };
1276template <
typename FF_>
1283 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_34";
1288 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_34_counts;
1290 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1291 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1292 ColumnAndShifts::keccakf1600_state_in_34,
1293 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
1294 ColumnAndShifts::keccakf1600_state_theta_34,
1295 ColumnAndShifts::keccakf1600_tag_u64
1297 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1298 ColumnAndShifts::bitwise_acc_ia,
1299 ColumnAndShifts::bitwise_acc_ib,
1300 ColumnAndShifts::bitwise_acc_ic,
1301 ColumnAndShifts::bitwise_tag_a };
1305template <
typename FF_>
1312 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_40";
1317 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_40_counts;
1319 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1320 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1321 ColumnAndShifts::keccakf1600_state_in_40,
1322 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
1323 ColumnAndShifts::keccakf1600_state_theta_40,
1324 ColumnAndShifts::keccakf1600_tag_u64
1326 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1327 ColumnAndShifts::bitwise_acc_ia,
1328 ColumnAndShifts::bitwise_acc_ib,
1329 ColumnAndShifts::bitwise_acc_ic,
1330 ColumnAndShifts::bitwise_tag_a };
1334template <
typename FF_>
1341 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_41";
1346 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_41_counts;
1348 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1349 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1350 ColumnAndShifts::keccakf1600_state_in_41,
1351 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
1352 ColumnAndShifts::keccakf1600_state_theta_41,
1353 ColumnAndShifts::keccakf1600_tag_u64
1355 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1356 ColumnAndShifts::bitwise_acc_ia,
1357 ColumnAndShifts::bitwise_acc_ib,
1358 ColumnAndShifts::bitwise_acc_ic,
1359 ColumnAndShifts::bitwise_tag_a };
1363template <
typename FF_>
1370 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_42";
1375 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_42_counts;
1377 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1378 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1379 ColumnAndShifts::keccakf1600_state_in_42,
1380 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
1381 ColumnAndShifts::keccakf1600_state_theta_42,
1382 ColumnAndShifts::keccakf1600_tag_u64
1384 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1385 ColumnAndShifts::bitwise_acc_ia,
1386 ColumnAndShifts::bitwise_acc_ib,
1387 ColumnAndShifts::bitwise_acc_ic,
1388 ColumnAndShifts::bitwise_tag_a };
1392template <
typename FF_>
1399 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_43";
1404 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_43_counts;
1406 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1407 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1408 ColumnAndShifts::keccakf1600_state_in_43,
1409 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
1410 ColumnAndShifts::keccakf1600_state_theta_43,
1411 ColumnAndShifts::keccakf1600_tag_u64
1413 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1414 ColumnAndShifts::bitwise_acc_ia,
1415 ColumnAndShifts::bitwise_acc_ib,
1416 ColumnAndShifts::bitwise_acc_ic,
1417 ColumnAndShifts::bitwise_tag_a };
1421template <
typename FF_>
1428 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_THETA_44";
1433 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_44_counts;
1435 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1436 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1437 ColumnAndShifts::keccakf1600_state_in_44,
1438 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
1439 ColumnAndShifts::keccakf1600_state_theta_44,
1440 ColumnAndShifts::keccakf1600_tag_u64
1442 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1443 ColumnAndShifts::bitwise_acc_ia,
1444 ColumnAndShifts::bitwise_acc_ib,
1445 ColumnAndShifts::bitwise_acc_ic,
1446 ColumnAndShifts::bitwise_tag_a };
1450template <
typename FF_>
1457 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_02_RANGE";
1462 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_02_range_counts;
1463 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_02_range_inv;
1464 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1465 ColumnAndShifts::keccakf1600_state_theta_hi_02, ColumnAndShifts::keccakf1600_rot_len_02
1467 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1468 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1474template <
typename FF_>
1481 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_04_RANGE";
1486 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_04_range_counts;
1487 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_04_range_inv;
1488 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1489 ColumnAndShifts::keccakf1600_state_theta_hi_04, ColumnAndShifts::keccakf1600_rot_len_04
1491 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1492 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1498template <
typename FF_>
1505 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_10_RANGE";
1510 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_10_range_counts;
1511 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_10_range_inv;
1512 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1513 ColumnAndShifts::keccakf1600_state_theta_hi_10, ColumnAndShifts::keccakf1600_rot_len_10
1515 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1516 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1522template <
typename FF_>
1529 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_12_RANGE";
1534 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_12_range_counts;
1535 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_12_range_inv;
1536 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1537 ColumnAndShifts::keccakf1600_state_theta_hi_12, ColumnAndShifts::keccakf1600_rot_len_12
1539 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1540 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1546template <
typename FF_>
1553 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_14_RANGE";
1558 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_14_range_counts;
1559 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_14_range_inv;
1560 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1561 ColumnAndShifts::keccakf1600_state_theta_hi_14, ColumnAndShifts::keccakf1600_rot_len_14
1563 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1564 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1570template <
typename FF_>
1577 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_21_RANGE";
1582 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_21_range_counts;
1583 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_21_range_inv;
1584 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1585 ColumnAndShifts::keccakf1600_state_theta_hi_21, ColumnAndShifts::keccakf1600_rot_len_21
1587 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1588 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1594template <
typename FF_>
1601 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_23_RANGE";
1606 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_23_range_counts;
1607 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_23_range_inv;
1608 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1609 ColumnAndShifts::keccakf1600_state_theta_hi_23, ColumnAndShifts::keccakf1600_rot_len_23
1611 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1612 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1618template <
typename FF_>
1625 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_30_RANGE";
1630 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_30_range_counts;
1631 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_30_range_inv;
1632 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1633 ColumnAndShifts::keccakf1600_state_theta_hi_30, ColumnAndShifts::keccakf1600_rot_len_30
1635 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1636 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1642template <
typename FF_>
1649 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_32_RANGE";
1654 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_32_range_counts;
1655 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_32_range_inv;
1656 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1657 ColumnAndShifts::keccakf1600_state_theta_hi_32, ColumnAndShifts::keccakf1600_rot_len_32
1659 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1660 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1666template <
typename FF_>
1673 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_33_RANGE";
1678 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_33_range_counts;
1679 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_33_range_inv;
1680 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1681 ColumnAndShifts::keccakf1600_state_theta_hi_33, ColumnAndShifts::keccakf1600_rot_len_33
1683 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1684 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1690template <
typename FF_>
1697 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_40_RANGE";
1702 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_40_range_counts;
1703 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_40_range_inv;
1704 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1705 ColumnAndShifts::keccakf1600_state_theta_hi_40, ColumnAndShifts::keccakf1600_rot_len_40
1707 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1708 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1714template <
typename FF_>
1721 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_41_RANGE";
1726 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_41_range_counts;
1727 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_41_range_inv;
1728 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1729 ColumnAndShifts::keccakf1600_state_theta_hi_41, ColumnAndShifts::keccakf1600_rot_len_41
1731 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1732 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1738template <
typename FF_>
1745 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_43_RANGE";
1750 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_43_range_counts;
1751 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_43_range_inv;
1752 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1753 ColumnAndShifts::keccakf1600_state_theta_hi_43, ColumnAndShifts::keccakf1600_rot_len_43
1755 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1756 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1762template <
typename FF_>
1769 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_44_RANGE";
1774 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_44_range_counts;
1775 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_44_range_inv;
1776 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1777 ColumnAndShifts::keccakf1600_state_theta_hi_44, ColumnAndShifts::keccakf1600_rot_len_44
1779 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1780 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1786template <
typename FF_>
1793 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_01_RANGE";
1798 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_01_range_counts;
1799 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_01_range_inv;
1800 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1801 ColumnAndShifts::keccakf1600_state_theta_low_01, ColumnAndShifts::keccakf1600_rot_64_min_len_01
1803 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1804 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1810template <
typename FF_>
1817 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_03_RANGE";
1822 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_03_range_counts;
1823 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_03_range_inv;
1824 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1825 ColumnAndShifts::keccakf1600_state_theta_low_03, ColumnAndShifts::keccakf1600_rot_64_min_len_03
1827 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1828 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1834template <
typename FF_>
1841 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_11_RANGE";
1846 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_11_range_counts;
1847 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_11_range_inv;
1848 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1849 ColumnAndShifts::keccakf1600_state_theta_low_11, ColumnAndShifts::keccakf1600_rot_64_min_len_11
1851 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1852 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1858template <
typename FF_>
1865 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_13_RANGE";
1870 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_13_range_counts;
1871 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_13_range_inv;
1872 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1873 ColumnAndShifts::keccakf1600_state_theta_low_13, ColumnAndShifts::keccakf1600_rot_64_min_len_13
1875 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1876 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1882template <
typename FF_>
1889 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_20_RANGE";
1894 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_20_range_counts;
1895 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_20_range_inv;
1896 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1897 ColumnAndShifts::keccakf1600_state_theta_low_20, ColumnAndShifts::keccakf1600_rot_64_min_len_20
1899 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1900 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1906template <
typename FF_>
1913 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_22_RANGE";
1918 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_22_range_counts;
1919 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_22_range_inv;
1920 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1921 ColumnAndShifts::keccakf1600_state_theta_low_22, ColumnAndShifts::keccakf1600_rot_64_min_len_22
1923 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1924 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1930template <
typename FF_>
1937 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_24_RANGE";
1942 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_24_range_counts;
1943 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_24_range_inv;
1944 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1945 ColumnAndShifts::keccakf1600_state_theta_low_24, ColumnAndShifts::keccakf1600_rot_64_min_len_24
1947 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1948 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1954template <
typename FF_>
1961 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_31_RANGE";
1966 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_31_range_counts;
1967 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_31_range_inv;
1968 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1969 ColumnAndShifts::keccakf1600_state_theta_low_31, ColumnAndShifts::keccakf1600_rot_64_min_len_31
1971 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1972 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1978template <
typename FF_>
1985 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_34_RANGE";
1990 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_34_range_counts;
1991 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_34_range_inv;
1992 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1993 ColumnAndShifts::keccakf1600_state_theta_low_34, ColumnAndShifts::keccakf1600_rot_64_min_len_34
1995 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1996 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
2002template <
typename FF_>
2009 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_THETA_LIMB_42_RANGE";
2014 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_42_range_counts;
2015 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_42_range_inv;
2016 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2017 ColumnAndShifts::keccakf1600_state_theta_low_42, ColumnAndShifts::keccakf1600_rot_64_min_len_42
2019 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
2020 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
2026template <
typename FF_>
2033 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_00";
2038 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_00_counts;
2040 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2041 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2042 ColumnAndShifts::keccakf1600_state_pi_not_10,
2043 ColumnAndShifts::keccakf1600_state_rho_22,
2044 ColumnAndShifts::keccakf1600_state_pi_and_00,
2045 ColumnAndShifts::keccakf1600_tag_u64
2047 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2048 ColumnAndShifts::bitwise_acc_ia,
2049 ColumnAndShifts::bitwise_acc_ib,
2050 ColumnAndShifts::bitwise_acc_ic,
2051 ColumnAndShifts::bitwise_tag_a };
2055template <
typename FF_>
2062 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_01";
2067 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_01_counts;
2069 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2070 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2071 ColumnAndShifts::keccakf1600_state_pi_not_11,
2072 ColumnAndShifts::keccakf1600_state_rho_02,
2073 ColumnAndShifts::keccakf1600_state_pi_and_01,
2074 ColumnAndShifts::keccakf1600_tag_u64
2076 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2077 ColumnAndShifts::bitwise_acc_ia,
2078 ColumnAndShifts::bitwise_acc_ib,
2079 ColumnAndShifts::bitwise_acc_ic,
2080 ColumnAndShifts::bitwise_tag_a };
2084template <
typename FF_>
2091 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_02";
2096 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_02_counts;
2098 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2099 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2100 ColumnAndShifts::keccakf1600_state_pi_not_12,
2101 ColumnAndShifts::keccakf1600_state_rho_32,
2102 ColumnAndShifts::keccakf1600_state_pi_and_02,
2103 ColumnAndShifts::keccakf1600_tag_u64
2105 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2106 ColumnAndShifts::bitwise_acc_ia,
2107 ColumnAndShifts::bitwise_acc_ib,
2108 ColumnAndShifts::bitwise_acc_ic,
2109 ColumnAndShifts::bitwise_tag_a };
2113template <
typename FF_>
2120 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_03";
2125 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_03_counts;
2127 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2128 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2129 ColumnAndShifts::keccakf1600_state_pi_not_13,
2130 ColumnAndShifts::keccakf1600_state_rho_12,
2131 ColumnAndShifts::keccakf1600_state_pi_and_03,
2132 ColumnAndShifts::keccakf1600_tag_u64
2134 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2135 ColumnAndShifts::bitwise_acc_ia,
2136 ColumnAndShifts::bitwise_acc_ib,
2137 ColumnAndShifts::bitwise_acc_ic,
2138 ColumnAndShifts::bitwise_tag_a };
2142template <
typename FF_>
2149 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_04";
2154 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_04_counts;
2156 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2157 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2158 ColumnAndShifts::keccakf1600_state_pi_not_14,
2159 ColumnAndShifts::keccakf1600_state_rho_42,
2160 ColumnAndShifts::keccakf1600_state_pi_and_04,
2161 ColumnAndShifts::keccakf1600_tag_u64
2163 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2164 ColumnAndShifts::bitwise_acc_ia,
2165 ColumnAndShifts::bitwise_acc_ib,
2166 ColumnAndShifts::bitwise_acc_ic,
2167 ColumnAndShifts::bitwise_tag_a };
2171template <
typename FF_>
2178 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_10";
2183 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_10_counts;
2185 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2186 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2187 ColumnAndShifts::keccakf1600_state_pi_not_20,
2188 ColumnAndShifts::keccakf1600_state_rho_33,
2189 ColumnAndShifts::keccakf1600_state_pi_and_10,
2190 ColumnAndShifts::keccakf1600_tag_u64
2192 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2193 ColumnAndShifts::bitwise_acc_ia,
2194 ColumnAndShifts::bitwise_acc_ib,
2195 ColumnAndShifts::bitwise_acc_ic,
2196 ColumnAndShifts::bitwise_tag_a };
2200template <
typename FF_>
2207 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_11";
2212 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_11_counts;
2214 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2215 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2216 ColumnAndShifts::keccakf1600_state_pi_not_21,
2217 ColumnAndShifts::keccakf1600_state_rho_13,
2218 ColumnAndShifts::keccakf1600_state_pi_and_11,
2219 ColumnAndShifts::keccakf1600_tag_u64
2221 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2222 ColumnAndShifts::bitwise_acc_ia,
2223 ColumnAndShifts::bitwise_acc_ib,
2224 ColumnAndShifts::bitwise_acc_ic,
2225 ColumnAndShifts::bitwise_tag_a };
2229template <
typename FF_>
2236 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_12";
2241 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_12_counts;
2243 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2244 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2245 ColumnAndShifts::keccakf1600_state_pi_not_22,
2246 ColumnAndShifts::keccakf1600_state_rho_43,
2247 ColumnAndShifts::keccakf1600_state_pi_and_12,
2248 ColumnAndShifts::keccakf1600_tag_u64
2250 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2251 ColumnAndShifts::bitwise_acc_ia,
2252 ColumnAndShifts::bitwise_acc_ib,
2253 ColumnAndShifts::bitwise_acc_ic,
2254 ColumnAndShifts::bitwise_tag_a };
2258template <
typename FF_>
2265 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_13";
2270 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_13_counts;
2272 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2273 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2274 ColumnAndShifts::keccakf1600_state_pi_not_23,
2275 ColumnAndShifts::keccakf1600_state_rho_23,
2276 ColumnAndShifts::keccakf1600_state_pi_and_13,
2277 ColumnAndShifts::keccakf1600_tag_u64
2279 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2280 ColumnAndShifts::bitwise_acc_ia,
2281 ColumnAndShifts::bitwise_acc_ib,
2282 ColumnAndShifts::bitwise_acc_ic,
2283 ColumnAndShifts::bitwise_tag_a };
2287template <
typename FF_>
2294 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_14";
2299 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_14_counts;
2301 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2302 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2303 ColumnAndShifts::keccakf1600_state_pi_not_24,
2304 ColumnAndShifts::keccakf1600_state_rho_03,
2305 ColumnAndShifts::keccakf1600_state_pi_and_14,
2306 ColumnAndShifts::keccakf1600_tag_u64
2308 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2309 ColumnAndShifts::bitwise_acc_ia,
2310 ColumnAndShifts::bitwise_acc_ib,
2311 ColumnAndShifts::bitwise_acc_ic,
2312 ColumnAndShifts::bitwise_tag_a };
2316template <
typename FF_>
2323 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_20";
2328 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_20_counts;
2330 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2331 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2332 ColumnAndShifts::keccakf1600_state_pi_not_30,
2333 ColumnAndShifts::keccakf1600_state_rho_44,
2334 ColumnAndShifts::keccakf1600_state_pi_and_20,
2335 ColumnAndShifts::keccakf1600_tag_u64
2337 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2338 ColumnAndShifts::bitwise_acc_ia,
2339 ColumnAndShifts::bitwise_acc_ib,
2340 ColumnAndShifts::bitwise_acc_ic,
2341 ColumnAndShifts::bitwise_tag_a };
2345template <
typename FF_>
2352 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_21";
2357 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_21_counts;
2359 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2360 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2361 ColumnAndShifts::keccakf1600_state_pi_not_31,
2362 ColumnAndShifts::keccakf1600_state_rho_24,
2363 ColumnAndShifts::keccakf1600_state_pi_and_21,
2364 ColumnAndShifts::keccakf1600_tag_u64
2366 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2367 ColumnAndShifts::bitwise_acc_ia,
2368 ColumnAndShifts::bitwise_acc_ib,
2369 ColumnAndShifts::bitwise_acc_ic,
2370 ColumnAndShifts::bitwise_tag_a };
2374template <
typename FF_>
2381 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_22";
2386 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_22_counts;
2388 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2389 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2390 ColumnAndShifts::keccakf1600_state_pi_not_32,
2391 ColumnAndShifts::keccakf1600_state_rho_04,
2392 ColumnAndShifts::keccakf1600_state_pi_and_22,
2393 ColumnAndShifts::keccakf1600_tag_u64
2395 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2396 ColumnAndShifts::bitwise_acc_ia,
2397 ColumnAndShifts::bitwise_acc_ib,
2398 ColumnAndShifts::bitwise_acc_ic,
2399 ColumnAndShifts::bitwise_tag_a };
2403template <
typename FF_>
2410 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_23";
2415 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_23_counts;
2417 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2418 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2419 ColumnAndShifts::keccakf1600_state_pi_not_33,
2420 ColumnAndShifts::keccakf1600_state_rho_34,
2421 ColumnAndShifts::keccakf1600_state_pi_and_23,
2422 ColumnAndShifts::keccakf1600_tag_u64
2424 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2425 ColumnAndShifts::bitwise_acc_ia,
2426 ColumnAndShifts::bitwise_acc_ib,
2427 ColumnAndShifts::bitwise_acc_ic,
2428 ColumnAndShifts::bitwise_tag_a };
2432template <
typename FF_>
2439 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_24";
2444 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_24_counts;
2446 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2447 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2448 ColumnAndShifts::keccakf1600_state_pi_not_34,
2449 ColumnAndShifts::keccakf1600_state_rho_14,
2450 ColumnAndShifts::keccakf1600_state_pi_and_24,
2451 ColumnAndShifts::keccakf1600_tag_u64
2453 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2454 ColumnAndShifts::bitwise_acc_ia,
2455 ColumnAndShifts::bitwise_acc_ib,
2456 ColumnAndShifts::bitwise_acc_ic,
2457 ColumnAndShifts::bitwise_tag_a };
2461template <
typename FF_>
2468 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_30";
2473 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_30_counts;
2475 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2476 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2477 ColumnAndShifts::keccakf1600_state_pi_not_40,
2478 ColumnAndShifts::keccakf1600_state_theta_00,
2479 ColumnAndShifts::keccakf1600_state_pi_and_30,
2480 ColumnAndShifts::keccakf1600_tag_u64
2482 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2483 ColumnAndShifts::bitwise_acc_ia,
2484 ColumnAndShifts::bitwise_acc_ib,
2485 ColumnAndShifts::bitwise_acc_ic,
2486 ColumnAndShifts::bitwise_tag_a };
2490template <
typename FF_>
2497 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_31";
2502 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_31_counts;
2504 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2505 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2506 ColumnAndShifts::keccakf1600_state_pi_not_41,
2507 ColumnAndShifts::keccakf1600_state_rho_30,
2508 ColumnAndShifts::keccakf1600_state_pi_and_31,
2509 ColumnAndShifts::keccakf1600_tag_u64
2511 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2512 ColumnAndShifts::bitwise_acc_ia,
2513 ColumnAndShifts::bitwise_acc_ib,
2514 ColumnAndShifts::bitwise_acc_ic,
2515 ColumnAndShifts::bitwise_tag_a };
2519template <
typename FF_>
2526 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_32";
2531 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_32_counts;
2533 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2534 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2535 ColumnAndShifts::keccakf1600_state_pi_not_42,
2536 ColumnAndShifts::keccakf1600_state_rho_10,
2537 ColumnAndShifts::keccakf1600_state_pi_and_32,
2538 ColumnAndShifts::keccakf1600_tag_u64
2540 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2541 ColumnAndShifts::bitwise_acc_ia,
2542 ColumnAndShifts::bitwise_acc_ib,
2543 ColumnAndShifts::bitwise_acc_ic,
2544 ColumnAndShifts::bitwise_tag_a };
2548template <
typename FF_>
2555 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_33";
2560 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_33_counts;
2562 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2563 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2564 ColumnAndShifts::keccakf1600_state_pi_not_43,
2565 ColumnAndShifts::keccakf1600_state_rho_40,
2566 ColumnAndShifts::keccakf1600_state_pi_and_33,
2567 ColumnAndShifts::keccakf1600_tag_u64
2569 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2570 ColumnAndShifts::bitwise_acc_ia,
2571 ColumnAndShifts::bitwise_acc_ib,
2572 ColumnAndShifts::bitwise_acc_ic,
2573 ColumnAndShifts::bitwise_tag_a };
2577template <
typename FF_>
2584 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_34";
2589 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_34_counts;
2591 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2592 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2593 ColumnAndShifts::keccakf1600_state_pi_not_44,
2594 ColumnAndShifts::keccakf1600_state_rho_20,
2595 ColumnAndShifts::keccakf1600_state_pi_and_34,
2596 ColumnAndShifts::keccakf1600_tag_u64
2598 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2599 ColumnAndShifts::bitwise_acc_ia,
2600 ColumnAndShifts::bitwise_acc_ib,
2601 ColumnAndShifts::bitwise_acc_ic,
2602 ColumnAndShifts::bitwise_tag_a };
2606template <
typename FF_>
2613 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_40";
2618 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_40_counts;
2620 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2621 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2622 ColumnAndShifts::keccakf1600_state_pi_not_00,
2623 ColumnAndShifts::keccakf1600_state_rho_11,
2624 ColumnAndShifts::keccakf1600_state_pi_and_40,
2625 ColumnAndShifts::keccakf1600_tag_u64
2627 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2628 ColumnAndShifts::bitwise_acc_ia,
2629 ColumnAndShifts::bitwise_acc_ib,
2630 ColumnAndShifts::bitwise_acc_ic,
2631 ColumnAndShifts::bitwise_tag_a };
2635template <
typename FF_>
2642 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_41";
2647 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_41_counts;
2649 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2650 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2651 ColumnAndShifts::keccakf1600_state_pi_not_01,
2652 ColumnAndShifts::keccakf1600_state_rho_41,
2653 ColumnAndShifts::keccakf1600_state_pi_and_41,
2654 ColumnAndShifts::keccakf1600_tag_u64
2656 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2657 ColumnAndShifts::bitwise_acc_ia,
2658 ColumnAndShifts::bitwise_acc_ib,
2659 ColumnAndShifts::bitwise_acc_ic,
2660 ColumnAndShifts::bitwise_tag_a };
2664template <
typename FF_>
2671 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_42";
2676 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_42_counts;
2678 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2679 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2680 ColumnAndShifts::keccakf1600_state_pi_not_02,
2681 ColumnAndShifts::keccakf1600_state_rho_21,
2682 ColumnAndShifts::keccakf1600_state_pi_and_42,
2683 ColumnAndShifts::keccakf1600_tag_u64
2685 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2686 ColumnAndShifts::bitwise_acc_ia,
2687 ColumnAndShifts::bitwise_acc_ib,
2688 ColumnAndShifts::bitwise_acc_ic,
2689 ColumnAndShifts::bitwise_tag_a };
2693template <
typename FF_>
2700 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_43";
2705 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_43_counts;
2707 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2708 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2709 ColumnAndShifts::keccakf1600_state_pi_not_03,
2710 ColumnAndShifts::keccakf1600_state_rho_01,
2711 ColumnAndShifts::keccakf1600_state_pi_and_43,
2712 ColumnAndShifts::keccakf1600_tag_u64
2714 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2715 ColumnAndShifts::bitwise_acc_ia,
2716 ColumnAndShifts::bitwise_acc_ib,
2717 ColumnAndShifts::bitwise_acc_ic,
2718 ColumnAndShifts::bitwise_tag_a };
2722template <
typename FF_>
2729 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_PI_AND_44";
2734 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_44_counts;
2736 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2737 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2738 ColumnAndShifts::keccakf1600_state_pi_not_04,
2739 ColumnAndShifts::keccakf1600_state_rho_31,
2740 ColumnAndShifts::keccakf1600_state_pi_and_44,
2741 ColumnAndShifts::keccakf1600_tag_u64
2743 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2744 ColumnAndShifts::bitwise_acc_ia,
2745 ColumnAndShifts::bitwise_acc_ib,
2746 ColumnAndShifts::bitwise_acc_ic,
2747 ColumnAndShifts::bitwise_tag_a };
2751template <
typename FF_>
2758 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_00";
2763 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_00_counts;
2765 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2766 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2767 ColumnAndShifts::keccakf1600_state_theta_00,
2768 ColumnAndShifts::keccakf1600_state_pi_and_00,
2769 ColumnAndShifts::keccakf1600_state_chi_00,
2770 ColumnAndShifts::keccakf1600_tag_u64
2772 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2773 ColumnAndShifts::bitwise_acc_ia,
2774 ColumnAndShifts::bitwise_acc_ib,
2775 ColumnAndShifts::bitwise_acc_ic,
2776 ColumnAndShifts::bitwise_tag_a };
2780template <
typename FF_>
2786 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_01";
2791 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_01_counts;
2793 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2794 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2795 ColumnAndShifts::keccakf1600_state_rho_30,
2796 ColumnAndShifts::keccakf1600_state_pi_and_01,
2797 ColumnAndShifts::keccakf1600_state_chi_01,
2798 ColumnAndShifts::keccakf1600_tag_u64
2800 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2801 ColumnAndShifts::bitwise_acc_ia,
2802 ColumnAndShifts::bitwise_acc_ib,
2803 ColumnAndShifts::bitwise_acc_ic,
2804 ColumnAndShifts::bitwise_tag_a };
2808template <
typename FF_>
2814 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_02";
2819 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_02_counts;
2821 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2822 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2823 ColumnAndShifts::keccakf1600_state_rho_10,
2824 ColumnAndShifts::keccakf1600_state_pi_and_02,
2825 ColumnAndShifts::keccakf1600_state_chi_02,
2826 ColumnAndShifts::keccakf1600_tag_u64
2828 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2829 ColumnAndShifts::bitwise_acc_ia,
2830 ColumnAndShifts::bitwise_acc_ib,
2831 ColumnAndShifts::bitwise_acc_ic,
2832 ColumnAndShifts::bitwise_tag_a };
2836template <
typename FF_>
2842 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_03";
2847 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_03_counts;
2849 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2850 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2851 ColumnAndShifts::keccakf1600_state_rho_40,
2852 ColumnAndShifts::keccakf1600_state_pi_and_03,
2853 ColumnAndShifts::keccakf1600_state_chi_03,
2854 ColumnAndShifts::keccakf1600_tag_u64
2856 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2857 ColumnAndShifts::bitwise_acc_ia,
2858 ColumnAndShifts::bitwise_acc_ib,
2859 ColumnAndShifts::bitwise_acc_ic,
2860 ColumnAndShifts::bitwise_tag_a };
2864template <
typename FF_>
2870 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_04";
2875 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_04_counts;
2877 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2878 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2879 ColumnAndShifts::keccakf1600_state_rho_20,
2880 ColumnAndShifts::keccakf1600_state_pi_and_04,
2881 ColumnAndShifts::keccakf1600_state_chi_04,
2882 ColumnAndShifts::keccakf1600_tag_u64
2884 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2885 ColumnAndShifts::bitwise_acc_ia,
2886 ColumnAndShifts::bitwise_acc_ib,
2887 ColumnAndShifts::bitwise_acc_ic,
2888 ColumnAndShifts::bitwise_tag_a };
2892template <
typename FF_>
2898 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_10";
2903 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_10_counts;
2905 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2906 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2907 ColumnAndShifts::keccakf1600_state_rho_11,
2908 ColumnAndShifts::keccakf1600_state_pi_and_10,
2909 ColumnAndShifts::keccakf1600_state_chi_10,
2910 ColumnAndShifts::keccakf1600_tag_u64
2912 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2913 ColumnAndShifts::bitwise_acc_ia,
2914 ColumnAndShifts::bitwise_acc_ib,
2915 ColumnAndShifts::bitwise_acc_ic,
2916 ColumnAndShifts::bitwise_tag_a };
2920template <
typename FF_>
2926 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_11";
2931 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_11_counts;
2933 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2934 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2935 ColumnAndShifts::keccakf1600_state_rho_41,
2936 ColumnAndShifts::keccakf1600_state_pi_and_11,
2937 ColumnAndShifts::keccakf1600_state_chi_11,
2938 ColumnAndShifts::keccakf1600_tag_u64
2940 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2941 ColumnAndShifts::bitwise_acc_ia,
2942 ColumnAndShifts::bitwise_acc_ib,
2943 ColumnAndShifts::bitwise_acc_ic,
2944 ColumnAndShifts::bitwise_tag_a };
2948template <
typename FF_>
2954 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_12";
2959 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_12_counts;
2961 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2962 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2963 ColumnAndShifts::keccakf1600_state_rho_21,
2964 ColumnAndShifts::keccakf1600_state_pi_and_12,
2965 ColumnAndShifts::keccakf1600_state_chi_12,
2966 ColumnAndShifts::keccakf1600_tag_u64
2968 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2969 ColumnAndShifts::bitwise_acc_ia,
2970 ColumnAndShifts::bitwise_acc_ib,
2971 ColumnAndShifts::bitwise_acc_ic,
2972 ColumnAndShifts::bitwise_tag_a };
2976template <
typename FF_>
2982 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_13";
2987 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_13_counts;
2989 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
2990 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2991 ColumnAndShifts::keccakf1600_state_rho_01,
2992 ColumnAndShifts::keccakf1600_state_pi_and_13,
2993 ColumnAndShifts::keccakf1600_state_chi_13,
2994 ColumnAndShifts::keccakf1600_tag_u64
2996 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2997 ColumnAndShifts::bitwise_acc_ia,
2998 ColumnAndShifts::bitwise_acc_ib,
2999 ColumnAndShifts::bitwise_acc_ic,
3000 ColumnAndShifts::bitwise_tag_a };
3004template <
typename FF_>
3010 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_14";
3015 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_14_counts;
3017 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3018 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3019 ColumnAndShifts::keccakf1600_state_rho_31,
3020 ColumnAndShifts::keccakf1600_state_pi_and_14,
3021 ColumnAndShifts::keccakf1600_state_chi_14,
3022 ColumnAndShifts::keccakf1600_tag_u64
3024 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3025 ColumnAndShifts::bitwise_acc_ia,
3026 ColumnAndShifts::bitwise_acc_ib,
3027 ColumnAndShifts::bitwise_acc_ic,
3028 ColumnAndShifts::bitwise_tag_a };
3032template <
typename FF_>
3038 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_20";
3043 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_20_counts;
3045 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3046 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3047 ColumnAndShifts::keccakf1600_state_rho_22,
3048 ColumnAndShifts::keccakf1600_state_pi_and_20,
3049 ColumnAndShifts::keccakf1600_state_chi_20,
3050 ColumnAndShifts::keccakf1600_tag_u64
3052 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3053 ColumnAndShifts::bitwise_acc_ia,
3054 ColumnAndShifts::bitwise_acc_ib,
3055 ColumnAndShifts::bitwise_acc_ic,
3056 ColumnAndShifts::bitwise_tag_a };
3060template <
typename FF_>
3066 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_21";
3071 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_21_counts;
3073 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3074 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3075 ColumnAndShifts::keccakf1600_state_rho_02,
3076 ColumnAndShifts::keccakf1600_state_pi_and_21,
3077 ColumnAndShifts::keccakf1600_state_chi_21,
3078 ColumnAndShifts::keccakf1600_tag_u64
3080 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3081 ColumnAndShifts::bitwise_acc_ia,
3082 ColumnAndShifts::bitwise_acc_ib,
3083 ColumnAndShifts::bitwise_acc_ic,
3084 ColumnAndShifts::bitwise_tag_a };
3088template <
typename FF_>
3094 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_22";
3099 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_22_counts;
3101 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3102 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3103 ColumnAndShifts::keccakf1600_state_rho_32,
3104 ColumnAndShifts::keccakf1600_state_pi_and_22,
3105 ColumnAndShifts::keccakf1600_state_chi_22,
3106 ColumnAndShifts::keccakf1600_tag_u64
3108 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3109 ColumnAndShifts::bitwise_acc_ia,
3110 ColumnAndShifts::bitwise_acc_ib,
3111 ColumnAndShifts::bitwise_acc_ic,
3112 ColumnAndShifts::bitwise_tag_a };
3116template <
typename FF_>
3122 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_23";
3127 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_23_counts;
3129 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3130 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3131 ColumnAndShifts::keccakf1600_state_rho_12,
3132 ColumnAndShifts::keccakf1600_state_pi_and_23,
3133 ColumnAndShifts::keccakf1600_state_chi_23,
3134 ColumnAndShifts::keccakf1600_tag_u64
3136 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3137 ColumnAndShifts::bitwise_acc_ia,
3138 ColumnAndShifts::bitwise_acc_ib,
3139 ColumnAndShifts::bitwise_acc_ic,
3140 ColumnAndShifts::bitwise_tag_a };
3144template <
typename FF_>
3150 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_24";
3155 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_24_counts;
3157 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3158 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3159 ColumnAndShifts::keccakf1600_state_rho_42,
3160 ColumnAndShifts::keccakf1600_state_pi_and_24,
3161 ColumnAndShifts::keccakf1600_state_chi_24,
3162 ColumnAndShifts::keccakf1600_tag_u64
3164 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3165 ColumnAndShifts::bitwise_acc_ia,
3166 ColumnAndShifts::bitwise_acc_ib,
3167 ColumnAndShifts::bitwise_acc_ic,
3168 ColumnAndShifts::bitwise_tag_a };
3172template <
typename FF_>
3178 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_30";
3183 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_30_counts;
3185 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3186 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3187 ColumnAndShifts::keccakf1600_state_rho_33,
3188 ColumnAndShifts::keccakf1600_state_pi_and_30,
3189 ColumnAndShifts::keccakf1600_state_chi_30,
3190 ColumnAndShifts::keccakf1600_tag_u64
3192 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3193 ColumnAndShifts::bitwise_acc_ia,
3194 ColumnAndShifts::bitwise_acc_ib,
3195 ColumnAndShifts::bitwise_acc_ic,
3196 ColumnAndShifts::bitwise_tag_a };
3200template <
typename FF_>
3206 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_31";
3211 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_31_counts;
3213 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3214 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3215 ColumnAndShifts::keccakf1600_state_rho_13,
3216 ColumnAndShifts::keccakf1600_state_pi_and_31,
3217 ColumnAndShifts::keccakf1600_state_chi_31,
3218 ColumnAndShifts::keccakf1600_tag_u64
3220 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3221 ColumnAndShifts::bitwise_acc_ia,
3222 ColumnAndShifts::bitwise_acc_ib,
3223 ColumnAndShifts::bitwise_acc_ic,
3224 ColumnAndShifts::bitwise_tag_a };
3228template <
typename FF_>
3234 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_32";
3239 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_32_counts;
3241 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3242 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3243 ColumnAndShifts::keccakf1600_state_rho_43,
3244 ColumnAndShifts::keccakf1600_state_pi_and_32,
3245 ColumnAndShifts::keccakf1600_state_chi_32,
3246 ColumnAndShifts::keccakf1600_tag_u64
3248 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3249 ColumnAndShifts::bitwise_acc_ia,
3250 ColumnAndShifts::bitwise_acc_ib,
3251 ColumnAndShifts::bitwise_acc_ic,
3252 ColumnAndShifts::bitwise_tag_a };
3256template <
typename FF_>
3262 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_33";
3267 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_33_counts;
3269 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3270 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3271 ColumnAndShifts::keccakf1600_state_rho_23,
3272 ColumnAndShifts::keccakf1600_state_pi_and_33,
3273 ColumnAndShifts::keccakf1600_state_chi_33,
3274 ColumnAndShifts::keccakf1600_tag_u64
3276 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3277 ColumnAndShifts::bitwise_acc_ia,
3278 ColumnAndShifts::bitwise_acc_ib,
3279 ColumnAndShifts::bitwise_acc_ic,
3280 ColumnAndShifts::bitwise_tag_a };
3284template <
typename FF_>
3290 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_34";
3295 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_34_counts;
3297 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3298 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3299 ColumnAndShifts::keccakf1600_state_rho_03,
3300 ColumnAndShifts::keccakf1600_state_pi_and_34,
3301 ColumnAndShifts::keccakf1600_state_chi_34,
3302 ColumnAndShifts::keccakf1600_tag_u64
3304 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3305 ColumnAndShifts::bitwise_acc_ia,
3306 ColumnAndShifts::bitwise_acc_ib,
3307 ColumnAndShifts::bitwise_acc_ic,
3308 ColumnAndShifts::bitwise_tag_a };
3312template <
typename FF_>
3318 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_40";
3323 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_40_counts;
3325 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3326 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3327 ColumnAndShifts::keccakf1600_state_rho_44,
3328 ColumnAndShifts::keccakf1600_state_pi_and_40,
3329 ColumnAndShifts::keccakf1600_state_chi_40,
3330 ColumnAndShifts::keccakf1600_tag_u64
3332 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3333 ColumnAndShifts::bitwise_acc_ia,
3334 ColumnAndShifts::bitwise_acc_ib,
3335 ColumnAndShifts::bitwise_acc_ic,
3336 ColumnAndShifts::bitwise_tag_a };
3340template <
typename FF_>
3346 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_41";
3351 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_41_counts;
3353 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3354 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3355 ColumnAndShifts::keccakf1600_state_rho_24,
3356 ColumnAndShifts::keccakf1600_state_pi_and_41,
3357 ColumnAndShifts::keccakf1600_state_chi_41,
3358 ColumnAndShifts::keccakf1600_tag_u64
3360 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3361 ColumnAndShifts::bitwise_acc_ia,
3362 ColumnAndShifts::bitwise_acc_ib,
3363 ColumnAndShifts::bitwise_acc_ic,
3364 ColumnAndShifts::bitwise_tag_a };
3368template <
typename FF_>
3374 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_42";
3379 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_42_counts;
3381 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3382 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3383 ColumnAndShifts::keccakf1600_state_rho_04,
3384 ColumnAndShifts::keccakf1600_state_pi_and_42,
3385 ColumnAndShifts::keccakf1600_state_chi_42,
3386 ColumnAndShifts::keccakf1600_tag_u64
3388 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3389 ColumnAndShifts::bitwise_acc_ia,
3390 ColumnAndShifts::bitwise_acc_ib,
3391 ColumnAndShifts::bitwise_acc_ic,
3392 ColumnAndShifts::bitwise_tag_a };
3396template <
typename FF_>
3402 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_43";
3407 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_43_counts;
3409 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3410 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3411 ColumnAndShifts::keccakf1600_state_rho_34,
3412 ColumnAndShifts::keccakf1600_state_pi_and_43,
3413 ColumnAndShifts::keccakf1600_state_chi_43,
3414 ColumnAndShifts::keccakf1600_tag_u64
3416 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3417 ColumnAndShifts::bitwise_acc_ia,
3418 ColumnAndShifts::bitwise_acc_ib,
3419 ColumnAndShifts::bitwise_acc_ic,
3420 ColumnAndShifts::bitwise_tag_a };
3424template <
typename FF_>
3430 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_CHI_44";
3435 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_44_counts;
3437 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3438 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3439 ColumnAndShifts::keccakf1600_state_rho_14,
3440 ColumnAndShifts::keccakf1600_state_pi_and_44,
3441 ColumnAndShifts::keccakf1600_state_chi_44,
3442 ColumnAndShifts::keccakf1600_tag_u64
3444 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3445 ColumnAndShifts::bitwise_acc_ia,
3446 ColumnAndShifts::bitwise_acc_ib,
3447 ColumnAndShifts::bitwise_acc_ic,
3448 ColumnAndShifts::bitwise_tag_a };
3452template <
typename FF_>
3458 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_ROUND_CST";
3463 static constexpr Column COUNTS = Column::lookup_keccakf1600_round_cst_counts;
3465 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3466 ColumnAndShifts::keccakf1600_round, ColumnAndShifts::keccakf1600_round_cst
3468 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
3469 ColumnAndShifts::precomputed_clk, ColumnAndShifts::precomputed_keccak_round_constant
3474template <
typename FF_>
3480 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_STATE_IOTA_00";
3485 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_iota_00_counts;
3487 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3488 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3489 ColumnAndShifts::keccakf1600_state_chi_00,
3490 ColumnAndShifts::keccakf1600_round_cst,
3491 ColumnAndShifts::keccakf1600_state_iota_00,
3492 ColumnAndShifts::keccakf1600_tag_u64
3494 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3495 ColumnAndShifts::bitwise_acc_ia,
3496 ColumnAndShifts::bitwise_acc_ib,
3497 ColumnAndShifts::bitwise_acc_ic,
3498 ColumnAndShifts::bitwise_tag_a };
3502template <
typename FF_>
3508 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_SRC_ABS_DIFF_POSITIVE";
3513 static constexpr Column COUNTS = Column::lookup_keccakf1600_src_abs_diff_positive_counts;
3514 static constexpr Column INVERSES = Column::lookup_keccakf1600_src_abs_diff_positive_inv;
3515 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3516 ColumnAndShifts::keccakf1600_src_abs_diff, ColumnAndShifts::keccakf1600_thirty_two
3518 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
3519 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
3525template <
typename FF_>
3532 static constexpr std::string_view
NAME =
"LOOKUP_KECCAKF1600_DST_ABS_DIFF_POSITIVE";
3537 static constexpr Column COUNTS = Column::lookup_keccakf1600_dst_abs_diff_positive_counts;
3538 static constexpr Column INVERSES = Column::lookup_keccakf1600_dst_abs_diff_positive_inv;
3539 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
3540 ColumnAndShifts::keccakf1600_dst_abs_diff, ColumnAndShifts::keccakf1600_thirty_two
3542 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
3543 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
3549template <
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::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
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 size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
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 std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
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 DST_SELECTOR
static constexpr Column COUNTS
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
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::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
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 Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
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 INVERSES
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
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 Column INVERSES
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
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::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column INVERSES
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 Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
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 NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr Column COUNTS
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 > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_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::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
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::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column INVERSES
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 DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
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 Column COUNTS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
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 Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
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 COUNTS
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
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 > DST_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
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 COUNTS
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
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 DST_SELECTOR
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
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 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 std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr Column INVERSES
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 std::string_view NAME
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
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 COUNTS
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
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 RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
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 Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
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 DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
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 Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
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 DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
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 NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
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 Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
static constexpr Column INVERSES
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::string_view NAME
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
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 Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
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 size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
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 Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr Column COUNTS
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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr Column COUNTS
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 std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
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 std::string_view NAME
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 Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr Column COUNTS
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 size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
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 std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
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 Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
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 Column COUNTS
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_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 Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
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 Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
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 Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS