8#include "../columns.hpp"
17 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_W_LHS";
22 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_w_lhs_counts;
23 static constexpr Column INVERSES = Column::lookup_sha256_range_comp_w_lhs_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
25 ColumnAndShifts::sha256_computed_w_lhs
27 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::precomputed_idx };
31template <
typename FF_>
37 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_W_RHS";
42 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_w_rhs_counts;
43 static constexpr Column INVERSES = Column::lookup_sha256_range_comp_w_rhs_inv;
44 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
45 ColumnAndShifts::sha256_computed_w_rhs, ColumnAndShifts::sha256_rng_chk_32
47 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
48 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
53template <
typename FF_>
59 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_W_7";
64 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_w_7_counts;
66 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = { ColumnAndShifts::sha256_rhs_w_7,
67 ColumnAndShifts::sha256_rng_chk_7 };
68 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
69 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
74template <
typename FF_>
80 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_W_18";
85 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_w_18_counts;
87 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
88 ColumnAndShifts::sha256_rhs_w_18, ColumnAndShifts::sha256_rng_chk_18
90 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
91 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
96template <
typename FF_>
102 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_W_3";
107 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_w_3_counts;
109 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = { ColumnAndShifts::sha256_rhs_w_3,
110 ColumnAndShifts::sha256_rng_chk_3 };
111 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
112 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
117template <
typename FF_>
123 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_W_S_0_XOR_0";
128 static constexpr Column COUNTS = Column::lookup_sha256_w_s_0_xor_0_counts;
130 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
131 ColumnAndShifts::sha256_w_15_rotr_7,
132 ColumnAndShifts::sha256_w_15_rotr_18,
133 ColumnAndShifts::sha256_w_15_rotr_7_xor_w_15_rotr_18,
134 ColumnAndShifts::sha256_xor_op_id,
135 ColumnAndShifts::sha256_u32_tag,
136 ColumnAndShifts::sha256_u32_tag
138 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
139 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
140 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
145template <
typename FF_>
151 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_W_S_0_XOR_1";
156 static constexpr Column COUNTS = Column::lookup_sha256_w_s_0_xor_1_counts;
158 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
159 ColumnAndShifts::sha256_w_15_rotr_7_xor_w_15_rotr_18,
160 ColumnAndShifts::sha256_lhs_w_3,
161 ColumnAndShifts::sha256_w_s_0,
162 ColumnAndShifts::sha256_xor_op_id,
163 ColumnAndShifts::sha256_u32_tag,
164 ColumnAndShifts::sha256_u32_tag
166 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
167 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
168 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
173template <
typename FF_>
179 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_W_17";
184 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_w_17_counts;
186 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
187 ColumnAndShifts::sha256_rhs_w_17, ColumnAndShifts::sha256_rng_chk_17
189 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
190 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
195template <
typename FF_>
201 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_W_19";
206 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_w_19_counts;
208 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
209 ColumnAndShifts::sha256_rhs_w_19, ColumnAndShifts::sha256_rng_chk_19
211 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
212 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
217template <
typename FF_>
223 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_W_10";
228 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_w_10_counts;
230 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
231 ColumnAndShifts::sha256_rhs_w_10, ColumnAndShifts::sha256_rng_chk_10
233 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
234 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
239template <
typename FF_>
245 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_W_S_1_XOR_0";
250 static constexpr Column COUNTS = Column::lookup_sha256_w_s_1_xor_0_counts;
252 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
253 ColumnAndShifts::sha256_w_2_rotr_17,
254 ColumnAndShifts::sha256_w_2_rotr_19,
255 ColumnAndShifts::sha256_w_2_rotr_17_xor_w_2_rotr_19,
256 ColumnAndShifts::sha256_xor_op_id,
257 ColumnAndShifts::sha256_u32_tag,
258 ColumnAndShifts::sha256_u32_tag
260 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
261 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
262 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
267template <
typename FF_>
273 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_W_S_1_XOR_1";
278 static constexpr Column COUNTS = Column::lookup_sha256_w_s_1_xor_1_counts;
280 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
281 ColumnAndShifts::sha256_w_2_rotr_17_xor_w_2_rotr_19,
282 ColumnAndShifts::sha256_lhs_w_10,
283 ColumnAndShifts::sha256_w_s_1,
284 ColumnAndShifts::sha256_xor_op_id,
285 ColumnAndShifts::sha256_u32_tag,
286 ColumnAndShifts::sha256_u32_tag
288 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
289 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
290 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
295template <
typename FF_>
301 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_E_6";
306 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_e_6_counts;
308 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = { ColumnAndShifts::sha256_rhs_e_6,
309 ColumnAndShifts::sha256_rng_chk_6 };
310 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
311 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
316template <
typename FF_>
322 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_E_11";
327 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_e_11_counts;
329 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
330 ColumnAndShifts::sha256_rhs_e_11, ColumnAndShifts::sha256_rng_chk_11
332 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
333 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
338template <
typename FF_>
344 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_E_25";
349 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_e_25_counts;
351 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
352 ColumnAndShifts::sha256_rhs_e_25, ColumnAndShifts::sha256_rng_chk_25
354 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
355 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
360template <
typename FF_>
366 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_S_1_XOR_0";
371 static constexpr Column COUNTS = Column::lookup_sha256_s_1_xor_0_counts;
373 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
374 ColumnAndShifts::sha256_e_rotr_6,
375 ColumnAndShifts::sha256_e_rotr_11,
376 ColumnAndShifts::sha256_e_rotr_6_xor_e_rotr_11,
377 ColumnAndShifts::sha256_xor_op_id,
378 ColumnAndShifts::sha256_u32_tag,
379 ColumnAndShifts::sha256_u32_tag
381 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
382 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
383 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
388template <
typename FF_>
394 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_S_1_XOR_1";
399 static constexpr Column COUNTS = Column::lookup_sha256_s_1_xor_1_counts;
401 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
402 ColumnAndShifts::sha256_e_rotr_6_xor_e_rotr_11,
403 ColumnAndShifts::sha256_e_rotr_25,
404 ColumnAndShifts::sha256_s_1,
405 ColumnAndShifts::sha256_xor_op_id,
406 ColumnAndShifts::sha256_u32_tag,
407 ColumnAndShifts::sha256_u32_tag
409 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
410 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
411 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
416template <
typename FF_>
422 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_CH_AND_0";
427 static constexpr Column COUNTS = Column::lookup_sha256_ch_and_0_counts;
429 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
430 ColumnAndShifts::sha256_e, ColumnAndShifts::sha256_f, ColumnAndShifts::sha256_e_and_f,
431 ColumnAndShifts::sha256_and_op_id, ColumnAndShifts::sha256_u32_tag, ColumnAndShifts::sha256_u32_tag
433 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
434 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
435 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
440template <
typename FF_>
446 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_CH_AND_1";
451 static constexpr Column COUNTS = Column::lookup_sha256_ch_and_1_counts;
453 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
454 ColumnAndShifts::sha256_not_e, ColumnAndShifts::sha256_g, ColumnAndShifts::sha256_not_e_and_g,
455 ColumnAndShifts::sha256_and_op_id, ColumnAndShifts::sha256_u32_tag, ColumnAndShifts::sha256_u32_tag
457 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
458 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
459 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
464template <
typename FF_>
470 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_CH_XOR";
477 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
478 ColumnAndShifts::sha256_e_and_f, ColumnAndShifts::sha256_not_e_and_g, ColumnAndShifts::sha256_ch,
479 ColumnAndShifts::sha256_xor_op_id, ColumnAndShifts::sha256_u32_tag, ColumnAndShifts::sha256_u32_tag
481 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
482 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
483 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
493 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_ROUND_CONSTANT";
498 static constexpr Column COUNTS = Column::lookup_sha256_round_constant_counts;
500 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
501 ColumnAndShifts::sha256_round_count, ColumnAndShifts::sha256_round_constant
503 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
504 ColumnAndShifts::precomputed_idx, ColumnAndShifts::precomputed_sha256_compression_round_constant
509template <
typename FF_>
515 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_A_2";
520 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_a_2_counts;
522 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = { ColumnAndShifts::sha256_rhs_a_2,
523 ColumnAndShifts::sha256_rng_chk_2 };
524 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
525 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
530template <
typename FF_>
536 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_A_13";
541 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_a_13_counts;
543 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
544 ColumnAndShifts::sha256_rhs_a_13, ColumnAndShifts::sha256_rng_chk_13
546 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
547 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
552template <
typename FF_>
558 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_RHS_A_22";
563 static constexpr Column COUNTS = Column::lookup_sha256_range_rhs_a_22_counts;
565 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
566 ColumnAndShifts::sha256_rhs_a_22, ColumnAndShifts::sha256_rng_chk_22
568 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
569 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
574template <
typename FF_>
580 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_S_0_XOR_0";
585 static constexpr Column COUNTS = Column::lookup_sha256_s_0_xor_0_counts;
587 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
588 ColumnAndShifts::sha256_a_rotr_2,
589 ColumnAndShifts::sha256_a_rotr_13,
590 ColumnAndShifts::sha256_a_rotr_2_xor_a_rotr_13,
591 ColumnAndShifts::sha256_xor_op_id,
592 ColumnAndShifts::sha256_u32_tag,
593 ColumnAndShifts::sha256_u32_tag
595 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
596 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
597 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
602template <
typename FF_>
608 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_S_0_XOR_1";
613 static constexpr Column COUNTS = Column::lookup_sha256_s_0_xor_1_counts;
615 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
616 ColumnAndShifts::sha256_a_rotr_2_xor_a_rotr_13,
617 ColumnAndShifts::sha256_a_rotr_22,
618 ColumnAndShifts::sha256_s_0,
619 ColumnAndShifts::sha256_xor_op_id,
620 ColumnAndShifts::sha256_u32_tag,
621 ColumnAndShifts::sha256_u32_tag
623 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
624 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
625 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
630template <
typename FF_>
636 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_MAJ_AND_0";
641 static constexpr Column COUNTS = Column::lookup_sha256_maj_and_0_counts;
643 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
644 ColumnAndShifts::sha256_a, ColumnAndShifts::sha256_b, ColumnAndShifts::sha256_a_and_b,
645 ColumnAndShifts::sha256_and_op_id, ColumnAndShifts::sha256_u32_tag, ColumnAndShifts::sha256_u32_tag
647 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
648 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
649 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
654template <
typename FF_>
660 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_MAJ_AND_1";
665 static constexpr Column COUNTS = Column::lookup_sha256_maj_and_1_counts;
667 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
668 ColumnAndShifts::sha256_a, ColumnAndShifts::sha256_c, ColumnAndShifts::sha256_a_and_c,
669 ColumnAndShifts::sha256_and_op_id, ColumnAndShifts::sha256_u32_tag, ColumnAndShifts::sha256_u32_tag
671 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
672 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
673 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
678template <
typename FF_>
684 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_MAJ_AND_2";
689 static constexpr Column COUNTS = Column::lookup_sha256_maj_and_2_counts;
691 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
692 ColumnAndShifts::sha256_b, ColumnAndShifts::sha256_c, ColumnAndShifts::sha256_b_and_c,
693 ColumnAndShifts::sha256_and_op_id, ColumnAndShifts::sha256_u32_tag, ColumnAndShifts::sha256_u32_tag
695 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
696 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
697 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
702template <
typename FF_>
708 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_MAJ_XOR_0";
713 static constexpr Column COUNTS = Column::lookup_sha256_maj_xor_0_counts;
715 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
716 ColumnAndShifts::sha256_a_and_b, ColumnAndShifts::sha256_a_and_c, ColumnAndShifts::sha256_a_and_b_xor_a_and_c,
717 ColumnAndShifts::sha256_xor_op_id, ColumnAndShifts::sha256_u32_tag, ColumnAndShifts::sha256_u32_tag
719 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
720 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
721 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
726template <
typename FF_>
732 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_MAJ_XOR_1";
737 static constexpr Column COUNTS = Column::lookup_sha256_maj_xor_1_counts;
739 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
740 ColumnAndShifts::sha256_a_and_b_xor_a_and_c, ColumnAndShifts::sha256_b_and_c, ColumnAndShifts::sha256_maj,
741 ColumnAndShifts::sha256_xor_op_id, ColumnAndShifts::sha256_u32_tag, ColumnAndShifts::sha256_u32_tag
743 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
744 ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ic,
745 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
750template <
typename FF_>
756 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_NEXT_A_LHS";
761 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_next_a_lhs_counts;
762 static constexpr Column INVERSES = Column::lookup_sha256_range_comp_next_a_lhs_inv;
763 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
764 ColumnAndShifts::sha256_next_a_lhs
766 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::precomputed_idx };
770template <
typename FF_>
777 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_NEXT_A_RHS";
782 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_next_a_rhs_counts;
783 static constexpr Column INVERSES = Column::lookup_sha256_range_comp_next_a_rhs_inv;
784 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
785 ColumnAndShifts::sha256_next_a_rhs, ColumnAndShifts::sha256_rng_chk_32
787 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
788 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
793template <
typename FF_>
800 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_NEXT_E_LHS";
805 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_next_e_lhs_counts;
806 static constexpr Column INVERSES = Column::lookup_sha256_range_comp_next_e_lhs_inv;
807 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
808 ColumnAndShifts::sha256_next_e_lhs
810 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = { ColumnAndShifts::precomputed_idx };
814template <
typename FF_>
821 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_NEXT_E_RHS";
826 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_next_e_rhs_counts;
827 static constexpr Column INVERSES = Column::lookup_sha256_range_comp_next_e_rhs_inv;
828 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
829 ColumnAndShifts::sha256_next_e_rhs, ColumnAndShifts::sha256_rng_chk_32
831 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
832 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
837template <
typename FF_>
844 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_A_RHS";
849 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_a_rhs_counts;
851 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
852 ColumnAndShifts::sha256_output_a_rhs, ColumnAndShifts::sha256_rng_chk_32
854 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
855 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
860template <
typename FF_>
866 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_B_RHS";
871 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_b_rhs_counts;
873 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
874 ColumnAndShifts::sha256_output_b_rhs, ColumnAndShifts::sha256_rng_chk_32
876 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
877 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
882template <
typename FF_>
888 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_C_RHS";
893 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_c_rhs_counts;
895 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
896 ColumnAndShifts::sha256_output_c_rhs, ColumnAndShifts::sha256_rng_chk_32
898 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
899 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
904template <
typename FF_>
910 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_D_RHS";
915 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_d_rhs_counts;
917 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
918 ColumnAndShifts::sha256_output_d_rhs, ColumnAndShifts::sha256_rng_chk_32
920 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
921 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
926template <
typename FF_>
932 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_E_RHS";
937 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_e_rhs_counts;
939 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
940 ColumnAndShifts::sha256_output_e_rhs, ColumnAndShifts::sha256_rng_chk_32
942 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
943 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
948template <
typename FF_>
954 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_F_RHS";
959 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_f_rhs_counts;
961 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
962 ColumnAndShifts::sha256_output_f_rhs, ColumnAndShifts::sha256_rng_chk_32
964 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
965 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
970template <
typename FF_>
976 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_G_RHS";
981 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_g_rhs_counts;
983 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
984 ColumnAndShifts::sha256_output_g_rhs, ColumnAndShifts::sha256_rng_chk_32
986 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
987 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
992template <
typename FF_>
998 static constexpr std::string_view
NAME =
"LOOKUP_SHA256_RANGE_COMP_H_RHS";
1003 static constexpr Column COUNTS = Column::lookup_sha256_range_comp_h_rhs_counts;
1005 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
SRC_COLUMNS = {
1006 ColumnAndShifts::sha256_output_h_rhs, ColumnAndShifts::sha256_rng_chk_32
1008 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE>
DST_COLUMNS = {
1009 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1014template <
typename FF_>
Settings to be passed ot GenericLookupRelationImpl.
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 COUNTS
static constexpr Column INVERSES
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 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 Column INVERSES
static constexpr Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column DST_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
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 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 size_t LOOKUP_TUPLE_SIZE
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 Column DST_SELECTOR
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column INVERSES
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 COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr Column SRC_SELECTOR
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 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::string_view NAME
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr Column COUNTS
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::string_view RELATION_NAME
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 std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
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 NAME
static constexpr Column COUNTS
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 INVERSES
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 COUNTS
static constexpr Column SRC_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 DST_SELECTOR
static constexpr Column INVERSES
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::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
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 SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
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 size_t LOOKUP_TUPLE_SIZE
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 SRC_SELECTOR
static constexpr Column DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
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 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 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 Column SRC_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 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 SRC_SELECTOR
static constexpr Column DST_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 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 COUNTS
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column COUNTS
static constexpr Column SRC_SELECTOR
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::string_view RELATION_NAME
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 Column DST_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::string_view 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 > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
static constexpr Column DST_SELECTOR
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 COUNTS
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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
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 COUNTS
static constexpr std::string_view NAME
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 DST_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column COUNTS
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 std::string_view NAME
static constexpr Column DST_SELECTOR
static constexpr Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr 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 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 std::string_view NAME
static constexpr Column DST_SELECTOR
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::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column COUNTS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr Column DST_SELECTOR
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 INVERSES
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 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::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
static constexpr Column INVERSES
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 > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
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 INVERSES
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 Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
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 > SRC_COLUMNS
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::string_view RELATION_NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::string_view NAME
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr size_t LOOKUP_TUPLE_SIZE
static constexpr Column INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column SRC_SELECTOR
static constexpr Column COUNTS
static constexpr std::string_view NAME
static constexpr 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 RELATION_NAME
static constexpr std::string_view NAME
static constexpr Column DST_SELECTOR
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 INVERSES
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr Column COUNTS
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 std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column INVERSES
static constexpr Column SRC_SELECTOR
static constexpr size_t LOOKUP_TUPLE_SIZE
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 SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr Column COUNTS
static constexpr Column INVERSES
static constexpr std::string_view RELATION_NAME
static constexpr Column DST_SELECTOR
static constexpr Column INVERSES
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 Column SRC_SELECTOR
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS