Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
lookups_keccakf1600.hpp
Go to the documentation of this file.
1// AUTOGENERATED FILE
2#pragma once
3
4#include <cstddef>
5#include <string_view>
6#include <tuple>
7
8#include "../columns.hpp"
11
12namespace bb::avm2 {
13
15
17 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_SIMD_01";
18 static constexpr std::string_view RELATION_NAME = "keccakf1600";
19 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
20 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
21 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
22 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_simd_01_counts;
23 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_simd_01_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
25 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_00,
26 ColumnAndShifts::keccakf1600_state_in_10, ColumnAndShifts::keccakf1600_state_in_01,
27 ColumnAndShifts::keccakf1600_state_in_11, ColumnAndShifts::keccakf1600_theta_xor_01,
28 ColumnAndShifts::keccakf1600_theta_xor_11
29 };
30 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
31 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
32 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
33 ColumnAndShifts::bitwise_ic_simd
34 };
35};
36
38template <typename FF_>
41
43
45 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_SIMD_21";
46 static constexpr std::string_view RELATION_NAME = "keccakf1600";
47 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
48 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
49 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
50 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_simd_21_counts;
51 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_simd_21_inv;
52 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
53 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_20,
54 ColumnAndShifts::keccakf1600_state_in_30, ColumnAndShifts::keccakf1600_state_in_21,
55 ColumnAndShifts::keccakf1600_state_in_31, ColumnAndShifts::keccakf1600_theta_xor_21,
56 ColumnAndShifts::keccakf1600_theta_xor_31
57 };
58 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
59 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
60 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
61 ColumnAndShifts::bitwise_ic_simd
62 };
63};
64
66template <typename FF_>
69
71
73 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_41";
74 static constexpr std::string_view RELATION_NAME = "keccakf1600";
75 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
76 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
77 static constexpr Column DST_SELECTOR = Column::bitwise_sel_keccak;
78 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_41_counts;
79 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_41_inv;
80 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
81 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_40,
82 ColumnAndShifts::keccakf1600_state_in_41, ColumnAndShifts::keccakf1600_theta_xor_41,
83 ColumnAndShifts::keccakf1600_tag_u64, ColumnAndShifts::keccakf1600_tag_u64
84 };
85 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
86 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib,
87 ColumnAndShifts::bitwise_ic, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
88 };
89};
90
92template <typename FF_>
94
96
98 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_SIMD_02";
99 static constexpr std::string_view RELATION_NAME = "keccakf1600";
100 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
101 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
102 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
103 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_simd_02_counts;
104 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_simd_02_inv;
105 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
106 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_01,
107 ColumnAndShifts::keccakf1600_theta_xor_11, ColumnAndShifts::keccakf1600_state_in_02,
108 ColumnAndShifts::keccakf1600_state_in_12, ColumnAndShifts::keccakf1600_theta_xor_02,
109 ColumnAndShifts::keccakf1600_theta_xor_12
110 };
111 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
112 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
113 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
114 ColumnAndShifts::bitwise_ic_simd
115 };
116};
117
119template <typename FF_>
122
124
126 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_SIMD_22";
127 static constexpr std::string_view RELATION_NAME = "keccakf1600";
128 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
129 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
130 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
131 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_simd_22_counts;
132 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_simd_22_inv;
133 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
134 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_21,
135 ColumnAndShifts::keccakf1600_theta_xor_31, ColumnAndShifts::keccakf1600_state_in_22,
136 ColumnAndShifts::keccakf1600_state_in_32, ColumnAndShifts::keccakf1600_theta_xor_22,
137 ColumnAndShifts::keccakf1600_theta_xor_32
138 };
139 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
140 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
141 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
142 ColumnAndShifts::bitwise_ic_simd
143 };
144};
145
147template <typename FF_>
150
152
154 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_42";
155 static constexpr std::string_view RELATION_NAME = "keccakf1600";
156 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
157 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
158 static constexpr Column DST_SELECTOR = Column::bitwise_sel_keccak;
159 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_42_counts;
160 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_42_inv;
161 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
162 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_41,
163 ColumnAndShifts::keccakf1600_state_in_42, ColumnAndShifts::keccakf1600_theta_xor_42,
164 ColumnAndShifts::keccakf1600_tag_u64, ColumnAndShifts::keccakf1600_tag_u64
165 };
166 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
167 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib,
168 ColumnAndShifts::bitwise_ic, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
169 };
170};
171
173template <typename FF_>
175
177
179 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_SIMD_03";
180 static constexpr std::string_view RELATION_NAME = "keccakf1600";
181 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
182 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
183 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
184 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_simd_03_counts;
185 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_simd_03_inv;
186 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
187 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_02,
188 ColumnAndShifts::keccakf1600_theta_xor_12, ColumnAndShifts::keccakf1600_state_in_03,
189 ColumnAndShifts::keccakf1600_state_in_13, ColumnAndShifts::keccakf1600_theta_xor_03,
190 ColumnAndShifts::keccakf1600_theta_xor_13
191 };
192 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
193 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
194 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
195 ColumnAndShifts::bitwise_ic_simd
196 };
197};
198
200template <typename FF_>
203
205
207 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_SIMD_23";
208 static constexpr std::string_view RELATION_NAME = "keccakf1600";
209 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
210 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
211 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
212 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_simd_23_counts;
213 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_simd_23_inv;
214 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
215 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_22,
216 ColumnAndShifts::keccakf1600_theta_xor_32, ColumnAndShifts::keccakf1600_state_in_23,
217 ColumnAndShifts::keccakf1600_state_in_33, ColumnAndShifts::keccakf1600_theta_xor_23,
218 ColumnAndShifts::keccakf1600_theta_xor_33
219 };
220 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
221 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
222 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
223 ColumnAndShifts::bitwise_ic_simd
224 };
225};
226
228template <typename FF_>
231
233
235 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_43";
236 static constexpr std::string_view RELATION_NAME = "keccakf1600";
237 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
238 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
239 static constexpr Column DST_SELECTOR = Column::bitwise_sel_keccak;
240 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_43_counts;
241 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_43_inv;
242 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
243 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_42,
244 ColumnAndShifts::keccakf1600_state_in_43, ColumnAndShifts::keccakf1600_theta_xor_43,
245 ColumnAndShifts::keccakf1600_tag_u64, ColumnAndShifts::keccakf1600_tag_u64
246 };
247 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
248 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib,
249 ColumnAndShifts::bitwise_ic, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
250 };
251};
252
254template <typename FF_>
256
258
260 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_ROW_SIMD_0";
261 static constexpr std::string_view RELATION_NAME = "keccakf1600";
262 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
263 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
264 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
265 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_simd_0_counts;
266 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_simd_0_inv;
267 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
268 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_03,
269 ColumnAndShifts::keccakf1600_theta_xor_13, ColumnAndShifts::keccakf1600_state_in_04,
270 ColumnAndShifts::keccakf1600_state_in_14, ColumnAndShifts::keccakf1600_theta_xor_row_0,
271 ColumnAndShifts::keccakf1600_theta_xor_row_1
272 };
273 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
274 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
275 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
276 ColumnAndShifts::bitwise_ic_simd
277 };
278};
279
282template <typename FF_>
285
287
289 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_ROW_SIMD_2";
290 static constexpr std::string_view RELATION_NAME = "keccakf1600";
291 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
292 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
293 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
294 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_simd_2_counts;
295 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_simd_2_inv;
296 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
297 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_23,
298 ColumnAndShifts::keccakf1600_theta_xor_33, ColumnAndShifts::keccakf1600_state_in_24,
299 ColumnAndShifts::keccakf1600_state_in_34, ColumnAndShifts::keccakf1600_theta_xor_row_2,
300 ColumnAndShifts::keccakf1600_theta_xor_row_3
301 };
302 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
303 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
304 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
305 ColumnAndShifts::bitwise_ic_simd
306 };
307};
308
311template <typename FF_>
314
316
318 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_ROW_4";
319 static constexpr std::string_view RELATION_NAME = "keccakf1600";
320 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
321 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
322 static constexpr Column DST_SELECTOR = Column::bitwise_sel_keccak;
323 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_4_counts;
324 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_4_inv;
325 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
326 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_43,
327 ColumnAndShifts::keccakf1600_state_in_44, ColumnAndShifts::keccakf1600_theta_xor_row_4,
328 ColumnAndShifts::keccakf1600_tag_u64, ColumnAndShifts::keccakf1600_tag_u64
329 };
330 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
331 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib,
332 ColumnAndShifts::bitwise_ic, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
333 };
334};
335
337template <typename FF_>
340
342
344 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_SIMD_0";
345 static constexpr std::string_view RELATION_NAME = "keccakf1600";
346 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
347 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
348 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
349 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_simd_0_counts;
350 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_simd_0_inv;
351 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
352 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_row_4,
353 ColumnAndShifts::keccakf1600_theta_xor_row_0, ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_1,
354 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_2, ColumnAndShifts::keccakf1600_theta_combined_xor_0_,
355 ColumnAndShifts::keccakf1600_theta_combined_xor_1_
356 };
357 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
358 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
359 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
360 ColumnAndShifts::bitwise_ic_simd
361 };
362};
363
366template <typename FF_>
369
371
373 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_SIMD_2";
374 static constexpr std::string_view RELATION_NAME = "keccakf1600";
375 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
376 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
377 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
378 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_simd_2_counts;
379 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_simd_2_inv;
380 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
381 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_theta_xor_row_1,
382 ColumnAndShifts::keccakf1600_theta_xor_row_2, ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_3,
383 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_4, ColumnAndShifts::keccakf1600_theta_combined_xor_2_,
384 ColumnAndShifts::keccakf1600_theta_combined_xor_3_
385 };
386 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
387 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
388 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
389 ColumnAndShifts::bitwise_ic_simd
390 };
391};
392
395template <typename FF_>
398
400
402 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_4";
403 static constexpr std::string_view RELATION_NAME = "keccakf1600";
404 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
405 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
406 static constexpr Column DST_SELECTOR = Column::bitwise_sel_keccak;
407 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_4_counts;
408 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_4_inv;
409 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
410 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
411 ColumnAndShifts::keccakf1600_theta_xor_row_3,
412 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_0,
413 ColumnAndShifts::keccakf1600_theta_combined_xor_4_,
414 ColumnAndShifts::keccakf1600_tag_u64,
415 ColumnAndShifts::keccakf1600_tag_u64
416 };
417 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
418 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib,
419 ColumnAndShifts::bitwise_ic, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
420 };
421};
422
425template <typename FF_>
428
430
432 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_00";
433 static constexpr std::string_view RELATION_NAME = "keccakf1600";
434 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
435 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
436 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
437 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_00_counts;
438 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_00_inv;
439 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
440 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_00,
441 ColumnAndShifts::keccakf1600_state_in_01, ColumnAndShifts::keccakf1600_theta_combined_xor_0_,
442 ColumnAndShifts::keccakf1600_theta_combined_xor_0_, ColumnAndShifts::keccakf1600_state_theta_00,
443 ColumnAndShifts::keccakf1600_state_theta_01
444 };
445 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
446 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
447 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
448 ColumnAndShifts::bitwise_ic_simd
449 };
450};
451
454template <typename FF_>
457
459
461 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_02";
462 static constexpr std::string_view RELATION_NAME = "keccakf1600";
463 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
464 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
465 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
466 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_02_counts;
467 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_02_inv;
468 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
469 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_02,
470 ColumnAndShifts::keccakf1600_state_in_03, ColumnAndShifts::keccakf1600_theta_combined_xor_0_,
471 ColumnAndShifts::keccakf1600_theta_combined_xor_0_, ColumnAndShifts::keccakf1600_state_theta_02,
472 ColumnAndShifts::keccakf1600_state_theta_03
473 };
474 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
475 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
476 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
477 ColumnAndShifts::bitwise_ic_simd
478 };
479};
480
483template <typename FF_>
486
488
490 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_04";
491 static constexpr std::string_view RELATION_NAME = "keccakf1600";
492 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
493 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
494 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
495 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_04_counts;
496 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_04_inv;
497 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
498 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_04,
499 ColumnAndShifts::keccakf1600_state_in_10, ColumnAndShifts::keccakf1600_theta_combined_xor_0_,
500 ColumnAndShifts::keccakf1600_theta_combined_xor_1_, ColumnAndShifts::keccakf1600_state_theta_04,
501 ColumnAndShifts::keccakf1600_state_theta_10
502 };
503 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
504 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
505 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
506 ColumnAndShifts::bitwise_ic_simd
507 };
508};
509
512template <typename FF_>
515
517
519 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_11";
520 static constexpr std::string_view RELATION_NAME = "keccakf1600";
521 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
522 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
523 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
524 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_11_counts;
525 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_11_inv;
526 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
527 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_11,
528 ColumnAndShifts::keccakf1600_state_in_12, ColumnAndShifts::keccakf1600_theta_combined_xor_1_,
529 ColumnAndShifts::keccakf1600_theta_combined_xor_1_, ColumnAndShifts::keccakf1600_state_theta_11,
530 ColumnAndShifts::keccakf1600_state_theta_12
531 };
532 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
533 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
534 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
535 ColumnAndShifts::bitwise_ic_simd
536 };
537};
538
541template <typename FF_>
544
546
548 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_13";
549 static constexpr std::string_view RELATION_NAME = "keccakf1600";
550 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
551 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
552 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
553 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_13_counts;
554 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_13_inv;
555 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
556 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_13,
557 ColumnAndShifts::keccakf1600_state_in_14, ColumnAndShifts::keccakf1600_theta_combined_xor_1_,
558 ColumnAndShifts::keccakf1600_theta_combined_xor_1_, ColumnAndShifts::keccakf1600_state_theta_13,
559 ColumnAndShifts::keccakf1600_state_theta_14
560 };
561 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
562 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
563 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
564 ColumnAndShifts::bitwise_ic_simd
565 };
566};
567
570template <typename FF_>
573
575
577 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_20";
578 static constexpr std::string_view RELATION_NAME = "keccakf1600";
579 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
580 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
581 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
582 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_20_counts;
583 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_20_inv;
584 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
585 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_20,
586 ColumnAndShifts::keccakf1600_state_in_21, ColumnAndShifts::keccakf1600_theta_combined_xor_2_,
587 ColumnAndShifts::keccakf1600_theta_combined_xor_2_, ColumnAndShifts::keccakf1600_state_theta_20,
588 ColumnAndShifts::keccakf1600_state_theta_21
589 };
590 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
591 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
592 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
593 ColumnAndShifts::bitwise_ic_simd
594 };
595};
596
599template <typename FF_>
602
604
606 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_22";
607 static constexpr std::string_view RELATION_NAME = "keccakf1600";
608 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
609 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
610 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
611 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_22_counts;
612 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_22_inv;
613 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
614 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_22,
615 ColumnAndShifts::keccakf1600_state_in_23, ColumnAndShifts::keccakf1600_theta_combined_xor_2_,
616 ColumnAndShifts::keccakf1600_theta_combined_xor_2_, ColumnAndShifts::keccakf1600_state_theta_22,
617 ColumnAndShifts::keccakf1600_state_theta_23
618 };
619 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
620 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
621 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
622 ColumnAndShifts::bitwise_ic_simd
623 };
624};
625
628template <typename FF_>
631
633
635 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_24";
636 static constexpr std::string_view RELATION_NAME = "keccakf1600";
637 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
638 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
639 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
640 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_24_counts;
641 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_24_inv;
642 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
643 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_24,
644 ColumnAndShifts::keccakf1600_state_in_30, ColumnAndShifts::keccakf1600_theta_combined_xor_2_,
645 ColumnAndShifts::keccakf1600_theta_combined_xor_3_, ColumnAndShifts::keccakf1600_state_theta_24,
646 ColumnAndShifts::keccakf1600_state_theta_30
647 };
648 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
649 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
650 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
651 ColumnAndShifts::bitwise_ic_simd
652 };
653};
654
657template <typename FF_>
660
662
664 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_31";
665 static constexpr std::string_view RELATION_NAME = "keccakf1600";
666 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
667 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
668 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
669 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_31_counts;
670 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_31_inv;
671 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
672 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_31,
673 ColumnAndShifts::keccakf1600_state_in_32, ColumnAndShifts::keccakf1600_theta_combined_xor_3_,
674 ColumnAndShifts::keccakf1600_theta_combined_xor_3_, ColumnAndShifts::keccakf1600_state_theta_31,
675 ColumnAndShifts::keccakf1600_state_theta_32
676 };
677 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
678 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
679 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
680 ColumnAndShifts::bitwise_ic_simd
681 };
682};
683
686template <typename FF_>
689
691
693 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_33";
694 static constexpr std::string_view RELATION_NAME = "keccakf1600";
695 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
696 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
697 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
698 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_33_counts;
699 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_33_inv;
700 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
701 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_33,
702 ColumnAndShifts::keccakf1600_state_in_34, ColumnAndShifts::keccakf1600_theta_combined_xor_3_,
703 ColumnAndShifts::keccakf1600_theta_combined_xor_3_, ColumnAndShifts::keccakf1600_state_theta_33,
704 ColumnAndShifts::keccakf1600_state_theta_34
705 };
706 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
707 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
708 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
709 ColumnAndShifts::bitwise_ic_simd
710 };
711};
712
715template <typename FF_>
718
720
722 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_40";
723 static constexpr std::string_view RELATION_NAME = "keccakf1600";
724 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
725 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
726 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
727 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_40_counts;
728 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_40_inv;
729 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
730 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_40,
731 ColumnAndShifts::keccakf1600_state_in_41, ColumnAndShifts::keccakf1600_theta_combined_xor_4_,
732 ColumnAndShifts::keccakf1600_theta_combined_xor_4_, ColumnAndShifts::keccakf1600_state_theta_40,
733 ColumnAndShifts::keccakf1600_state_theta_41
734 };
735 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
736 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
737 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
738 ColumnAndShifts::bitwise_ic_simd
739 };
740};
741
744template <typename FF_>
747
749
751 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_SIMD_42";
752 static constexpr std::string_view RELATION_NAME = "keccakf1600";
753 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
754 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
755 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
756 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_simd_42_counts;
757 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_simd_42_inv;
758 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
759 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_in_42,
760 ColumnAndShifts::keccakf1600_state_in_43, ColumnAndShifts::keccakf1600_theta_combined_xor_4_,
761 ColumnAndShifts::keccakf1600_theta_combined_xor_4_, ColumnAndShifts::keccakf1600_state_theta_42,
762 ColumnAndShifts::keccakf1600_state_theta_43
763 };
764 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
765 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
766 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
767 ColumnAndShifts::bitwise_ic_simd
768 };
769};
770
773template <typename FF_>
776
778
780 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_44";
781 static constexpr std::string_view RELATION_NAME = "keccakf1600";
782 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
783 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
784 static constexpr Column DST_SELECTOR = Column::bitwise_sel_keccak;
785 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_44_counts;
786 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_44_inv;
787 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
788 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
789 ColumnAndShifts::keccakf1600_state_in_44,
790 ColumnAndShifts::keccakf1600_theta_combined_xor_4_,
791 ColumnAndShifts::keccakf1600_state_theta_44,
792 ColumnAndShifts::keccakf1600_tag_u64,
793 ColumnAndShifts::keccakf1600_tag_u64
794 };
795 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
796 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib,
797 ColumnAndShifts::bitwise_ic, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
798 };
799};
800
802template <typename FF_>
805
807
809 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_02_RANGE";
810 static constexpr std::string_view RELATION_NAME = "keccakf1600";
811 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
812 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
813 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
814 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_02_range_counts;
815 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_02_range_inv;
816 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
817 ColumnAndShifts::keccakf1600_state_theta_hi_02, ColumnAndShifts::keccakf1600_rot_len_02
818 };
819 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
820 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
821 };
822};
823
826template <typename FF_>
829
831
833 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_04_RANGE";
834 static constexpr std::string_view RELATION_NAME = "keccakf1600";
835 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
836 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
837 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
838 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_04_range_counts;
839 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_04_range_inv;
840 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
841 ColumnAndShifts::keccakf1600_state_theta_hi_04, ColumnAndShifts::keccakf1600_rot_len_04
842 };
843 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
844 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
845 };
846};
847
850template <typename FF_>
853
855
857 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_10_RANGE";
858 static constexpr std::string_view RELATION_NAME = "keccakf1600";
859 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
860 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
861 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
862 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_10_range_counts;
863 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_10_range_inv;
864 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
865 ColumnAndShifts::keccakf1600_state_theta_hi_10, ColumnAndShifts::keccakf1600_rot_len_10
866 };
867 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
868 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
869 };
870};
871
874template <typename FF_>
877
879
881 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_12_RANGE";
882 static constexpr std::string_view RELATION_NAME = "keccakf1600";
883 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
884 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
885 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
886 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_12_range_counts;
887 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_12_range_inv;
888 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
889 ColumnAndShifts::keccakf1600_state_theta_hi_12, ColumnAndShifts::keccakf1600_rot_len_12
890 };
891 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
892 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
893 };
894};
895
898template <typename FF_>
901
903
905 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_14_RANGE";
906 static constexpr std::string_view RELATION_NAME = "keccakf1600";
907 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
908 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
909 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
910 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_14_range_counts;
911 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_14_range_inv;
912 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
913 ColumnAndShifts::keccakf1600_state_theta_hi_14, ColumnAndShifts::keccakf1600_rot_len_14
914 };
915 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
916 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
917 };
918};
919
922template <typename FF_>
925
927
929 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_21_RANGE";
930 static constexpr std::string_view RELATION_NAME = "keccakf1600";
931 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
932 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
933 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
934 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_21_range_counts;
935 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_21_range_inv;
936 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
937 ColumnAndShifts::keccakf1600_state_theta_hi_21, ColumnAndShifts::keccakf1600_rot_len_21
938 };
939 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
940 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
941 };
942};
943
946template <typename FF_>
949
951
953 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_23_RANGE";
954 static constexpr std::string_view RELATION_NAME = "keccakf1600";
955 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
956 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
957 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
958 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_23_range_counts;
959 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_23_range_inv;
960 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
961 ColumnAndShifts::keccakf1600_state_theta_hi_23, ColumnAndShifts::keccakf1600_rot_len_23
962 };
963 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
964 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
965 };
966};
967
970template <typename FF_>
973
975
977 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_30_RANGE";
978 static constexpr std::string_view RELATION_NAME = "keccakf1600";
979 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
980 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
981 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
982 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_30_range_counts;
983 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_30_range_inv;
984 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
985 ColumnAndShifts::keccakf1600_state_theta_hi_30, ColumnAndShifts::keccakf1600_rot_len_30
986 };
987 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
988 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
989 };
990};
991
994template <typename FF_>
997
999
1001 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_32_RANGE";
1002 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1003 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1004 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1005 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1006 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_32_range_counts;
1007 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_32_range_inv;
1008 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1009 ColumnAndShifts::keccakf1600_state_theta_hi_32, ColumnAndShifts::keccakf1600_rot_len_32
1010 };
1011 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1012 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1013 };
1014};
1015
1018template <typename FF_>
1021
1023
1025 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_33_RANGE";
1026 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1027 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1028 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1029 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1030 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_33_range_counts;
1031 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_33_range_inv;
1032 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1033 ColumnAndShifts::keccakf1600_state_theta_hi_33, ColumnAndShifts::keccakf1600_rot_len_33
1034 };
1035 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1036 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1037 };
1038};
1039
1042template <typename FF_>
1045
1047
1049 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_40_RANGE";
1050 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1051 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1052 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1053 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1054 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_40_range_counts;
1055 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_40_range_inv;
1056 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1057 ColumnAndShifts::keccakf1600_state_theta_hi_40, ColumnAndShifts::keccakf1600_rot_len_40
1058 };
1059 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1060 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1061 };
1062};
1063
1066template <typename FF_>
1069
1071
1073 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_41_RANGE";
1074 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1075 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1076 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1077 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1078 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_41_range_counts;
1079 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_41_range_inv;
1080 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1081 ColumnAndShifts::keccakf1600_state_theta_hi_41, ColumnAndShifts::keccakf1600_rot_len_41
1082 };
1083 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1084 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1085 };
1086};
1087
1090template <typename FF_>
1093
1095
1097 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_43_RANGE";
1098 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1099 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1100 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1101 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1102 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_43_range_counts;
1103 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_43_range_inv;
1104 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1105 ColumnAndShifts::keccakf1600_state_theta_hi_43, ColumnAndShifts::keccakf1600_rot_len_43
1106 };
1107 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1108 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1109 };
1110};
1111
1114template <typename FF_>
1117
1119
1121 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_44_RANGE";
1122 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1123 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1124 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1125 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1126 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_44_range_counts;
1127 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_44_range_inv;
1128 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1129 ColumnAndShifts::keccakf1600_state_theta_hi_44, ColumnAndShifts::keccakf1600_rot_len_44
1130 };
1131 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1132 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1133 };
1134};
1135
1138template <typename FF_>
1141
1143
1145 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_01_RANGE";
1146 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1147 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1148 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1149 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1150 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_01_range_counts;
1151 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_01_range_inv;
1152 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1153 ColumnAndShifts::keccakf1600_state_theta_low_01, ColumnAndShifts::keccakf1600_rot_64_min_len_01
1154 };
1155 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1156 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1157 };
1158};
1159
1162template <typename FF_>
1165
1167
1169 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_03_RANGE";
1170 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1171 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1172 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1173 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1174 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_03_range_counts;
1175 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_03_range_inv;
1176 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1177 ColumnAndShifts::keccakf1600_state_theta_low_03, ColumnAndShifts::keccakf1600_rot_64_min_len_03
1178 };
1179 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1180 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1181 };
1182};
1183
1186template <typename FF_>
1189
1191
1193 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_11_RANGE";
1194 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1195 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1196 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1197 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1198 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_11_range_counts;
1199 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_11_range_inv;
1200 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1201 ColumnAndShifts::keccakf1600_state_theta_low_11, ColumnAndShifts::keccakf1600_rot_64_min_len_11
1202 };
1203 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1204 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1205 };
1206};
1207
1210template <typename FF_>
1213
1215
1217 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_13_RANGE";
1218 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1219 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1220 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1221 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1222 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_13_range_counts;
1223 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_13_range_inv;
1224 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1225 ColumnAndShifts::keccakf1600_state_theta_low_13, ColumnAndShifts::keccakf1600_rot_64_min_len_13
1226 };
1227 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1228 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1229 };
1230};
1231
1234template <typename FF_>
1237
1239
1241 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_20_RANGE";
1242 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1243 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1244 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1245 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1246 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_20_range_counts;
1247 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_20_range_inv;
1248 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1249 ColumnAndShifts::keccakf1600_state_theta_low_20, ColumnAndShifts::keccakf1600_rot_64_min_len_20
1250 };
1251 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1252 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1253 };
1254};
1255
1258template <typename FF_>
1261
1263
1265 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_22_RANGE";
1266 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1267 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1268 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1269 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1270 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_22_range_counts;
1271 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_22_range_inv;
1272 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1273 ColumnAndShifts::keccakf1600_state_theta_low_22, ColumnAndShifts::keccakf1600_rot_64_min_len_22
1274 };
1275 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1276 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1277 };
1278};
1279
1282template <typename FF_>
1285
1287
1289 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_24_RANGE";
1290 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1291 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1292 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1293 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1294 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_24_range_counts;
1295 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_24_range_inv;
1296 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1297 ColumnAndShifts::keccakf1600_state_theta_low_24, ColumnAndShifts::keccakf1600_rot_64_min_len_24
1298 };
1299 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1300 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1301 };
1302};
1303
1306template <typename FF_>
1309
1311
1313 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_31_RANGE";
1314 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1315 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1316 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1317 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1318 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_31_range_counts;
1319 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_31_range_inv;
1320 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1321 ColumnAndShifts::keccakf1600_state_theta_low_31, ColumnAndShifts::keccakf1600_rot_64_min_len_31
1322 };
1323 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1324 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1325 };
1326};
1327
1330template <typename FF_>
1333
1335
1337 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_34_RANGE";
1338 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1339 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1340 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1341 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1342 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_34_range_counts;
1343 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_34_range_inv;
1344 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1345 ColumnAndShifts::keccakf1600_state_theta_low_34, ColumnAndShifts::keccakf1600_rot_64_min_len_34
1346 };
1347 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1348 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1349 };
1350};
1351
1354template <typename FF_>
1357
1359
1361 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_42_RANGE";
1362 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1363 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1364 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1365 static constexpr Column DST_SELECTOR = Column::range_check_sel_keccak;
1366 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_42_range_counts;
1367 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_42_range_inv;
1368 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1369 ColumnAndShifts::keccakf1600_state_theta_low_42, ColumnAndShifts::keccakf1600_rot_64_min_len_42
1370 };
1371 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1372 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1373 };
1374};
1375
1378template <typename FF_>
1381
1383
1385 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_00";
1386 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1387 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1388 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1389 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1390 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_00_counts;
1391 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_00_inv;
1392 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1393 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_10,
1394 ColumnAndShifts::keccakf1600_state_pi_not_11, ColumnAndShifts::keccakf1600_state_rho_22,
1395 ColumnAndShifts::keccakf1600_state_rho_02, ColumnAndShifts::keccakf1600_state_pi_and_00,
1396 ColumnAndShifts::keccakf1600_state_pi_and_01
1397 };
1398 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1399 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1400 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1401 ColumnAndShifts::bitwise_ic_simd
1402 };
1403};
1404
1407template <typename FF_>
1410
1412
1414 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_02";
1415 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1416 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1417 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1418 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1419 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_02_counts;
1420 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_02_inv;
1421 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1422 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_12,
1423 ColumnAndShifts::keccakf1600_state_pi_not_13, ColumnAndShifts::keccakf1600_state_rho_32,
1424 ColumnAndShifts::keccakf1600_state_rho_12, ColumnAndShifts::keccakf1600_state_pi_and_02,
1425 ColumnAndShifts::keccakf1600_state_pi_and_03
1426 };
1427 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1428 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1429 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1430 ColumnAndShifts::bitwise_ic_simd
1431 };
1432};
1433
1436template <typename FF_>
1439
1441
1443 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_04";
1444 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1445 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1446 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1447 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1448 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_04_counts;
1449 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_04_inv;
1450 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1451 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_14,
1452 ColumnAndShifts::keccakf1600_state_pi_not_20, ColumnAndShifts::keccakf1600_state_rho_42,
1453 ColumnAndShifts::keccakf1600_state_rho_33, ColumnAndShifts::keccakf1600_state_pi_and_04,
1454 ColumnAndShifts::keccakf1600_state_pi_and_10
1455 };
1456 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1457 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1458 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1459 ColumnAndShifts::bitwise_ic_simd
1460 };
1461};
1462
1465template <typename FF_>
1468
1470
1472 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_11";
1473 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1474 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1475 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1476 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1477 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_11_counts;
1478 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_11_inv;
1479 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1480 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_21,
1481 ColumnAndShifts::keccakf1600_state_pi_not_22, ColumnAndShifts::keccakf1600_state_rho_13,
1482 ColumnAndShifts::keccakf1600_state_rho_43, ColumnAndShifts::keccakf1600_state_pi_and_11,
1483 ColumnAndShifts::keccakf1600_state_pi_and_12
1484 };
1485 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1486 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1487 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1488 ColumnAndShifts::bitwise_ic_simd
1489 };
1490};
1491
1494template <typename FF_>
1497
1499
1501 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_13";
1502 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1503 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1504 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1505 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1506 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_13_counts;
1507 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_13_inv;
1508 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1509 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_23,
1510 ColumnAndShifts::keccakf1600_state_pi_not_24, ColumnAndShifts::keccakf1600_state_rho_23,
1511 ColumnAndShifts::keccakf1600_state_rho_03, ColumnAndShifts::keccakf1600_state_pi_and_13,
1512 ColumnAndShifts::keccakf1600_state_pi_and_14
1513 };
1514 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1515 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1516 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1517 ColumnAndShifts::bitwise_ic_simd
1518 };
1519};
1520
1523template <typename FF_>
1526
1528
1530 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_20";
1531 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1532 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1533 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1534 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1535 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_20_counts;
1536 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_20_inv;
1537 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1538 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_30,
1539 ColumnAndShifts::keccakf1600_state_pi_not_31, ColumnAndShifts::keccakf1600_state_rho_44,
1540 ColumnAndShifts::keccakf1600_state_rho_24, ColumnAndShifts::keccakf1600_state_pi_and_20,
1541 ColumnAndShifts::keccakf1600_state_pi_and_21
1542 };
1543 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1544 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1545 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1546 ColumnAndShifts::bitwise_ic_simd
1547 };
1548};
1549
1552template <typename FF_>
1555
1557
1559 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_22";
1560 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1561 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1562 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1563 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1564 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_22_counts;
1565 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_22_inv;
1566 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1567 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_32,
1568 ColumnAndShifts::keccakf1600_state_pi_not_33, ColumnAndShifts::keccakf1600_state_rho_04,
1569 ColumnAndShifts::keccakf1600_state_rho_34, ColumnAndShifts::keccakf1600_state_pi_and_22,
1570 ColumnAndShifts::keccakf1600_state_pi_and_23
1571 };
1572 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1573 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1574 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1575 ColumnAndShifts::bitwise_ic_simd
1576 };
1577};
1578
1581template <typename FF_>
1584
1586
1588 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_24";
1589 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1590 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1591 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1592 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1593 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_24_counts;
1594 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_24_inv;
1595 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1596 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_34,
1597 ColumnAndShifts::keccakf1600_state_pi_not_40, ColumnAndShifts::keccakf1600_state_rho_14,
1598 ColumnAndShifts::keccakf1600_state_theta_00, ColumnAndShifts::keccakf1600_state_pi_and_24,
1599 ColumnAndShifts::keccakf1600_state_pi_and_30
1600 };
1601 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1602 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1603 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1604 ColumnAndShifts::bitwise_ic_simd
1605 };
1606};
1607
1610template <typename FF_>
1613
1615
1617 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_31";
1618 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1619 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1620 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1621 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1622 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_31_counts;
1623 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_31_inv;
1624 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1625 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_41,
1626 ColumnAndShifts::keccakf1600_state_pi_not_42, ColumnAndShifts::keccakf1600_state_rho_30,
1627 ColumnAndShifts::keccakf1600_state_rho_10, ColumnAndShifts::keccakf1600_state_pi_and_31,
1628 ColumnAndShifts::keccakf1600_state_pi_and_32
1629 };
1630 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1631 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1632 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1633 ColumnAndShifts::bitwise_ic_simd
1634 };
1635};
1636
1639template <typename FF_>
1642
1644
1646 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_33";
1647 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1648 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1649 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1650 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1651 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_33_counts;
1652 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_33_inv;
1653 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1654 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_43,
1655 ColumnAndShifts::keccakf1600_state_pi_not_44, ColumnAndShifts::keccakf1600_state_rho_40,
1656 ColumnAndShifts::keccakf1600_state_rho_20, ColumnAndShifts::keccakf1600_state_pi_and_33,
1657 ColumnAndShifts::keccakf1600_state_pi_and_34
1658 };
1659 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1660 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1661 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1662 ColumnAndShifts::bitwise_ic_simd
1663 };
1664};
1665
1668template <typename FF_>
1671
1673
1675 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_40";
1676 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1677 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1678 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1679 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1680 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_40_counts;
1681 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_40_inv;
1682 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1683 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_00,
1684 ColumnAndShifts::keccakf1600_state_pi_not_01, ColumnAndShifts::keccakf1600_state_rho_11,
1685 ColumnAndShifts::keccakf1600_state_rho_41, ColumnAndShifts::keccakf1600_state_pi_and_40,
1686 ColumnAndShifts::keccakf1600_state_pi_and_41
1687 };
1688 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1689 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1690 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1691 ColumnAndShifts::bitwise_ic_simd
1692 };
1693};
1694
1697template <typename FF_>
1700
1702
1704 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_SIMD_42";
1705 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1706 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1707 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1708 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1709 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_simd_42_counts;
1710 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_simd_42_inv;
1711 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1712 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_02,
1713 ColumnAndShifts::keccakf1600_state_pi_not_03, ColumnAndShifts::keccakf1600_state_rho_21,
1714 ColumnAndShifts::keccakf1600_state_rho_01, ColumnAndShifts::keccakf1600_state_pi_and_42,
1715 ColumnAndShifts::keccakf1600_state_pi_and_43
1716 };
1717 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1718 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1719 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1720 ColumnAndShifts::bitwise_ic_simd
1721 };
1722};
1723
1726template <typename FF_>
1729
1731
1733 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_44";
1734 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1735 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
1736 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1737 static constexpr Column DST_SELECTOR = Column::bitwise_sel_keccak;
1738 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_44_counts;
1739 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_44_inv;
1740 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1741 ColumnAndShifts::keccakf1600_bitwise_and_op_id, ColumnAndShifts::keccakf1600_state_pi_not_04,
1742 ColumnAndShifts::keccakf1600_state_rho_31, ColumnAndShifts::keccakf1600_state_pi_and_44,
1743 ColumnAndShifts::keccakf1600_tag_u64, ColumnAndShifts::keccakf1600_tag_u64
1744 };
1745 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1746 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib,
1747 ColumnAndShifts::bitwise_ic, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
1748 };
1749};
1750
1752template <typename FF_>
1755
1757
1759 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_00";
1760 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1761 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1762 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1763 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1764 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_00_counts;
1765 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_00_inv;
1766 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1767 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_theta_00,
1768 ColumnAndShifts::keccakf1600_state_rho_30, ColumnAndShifts::keccakf1600_state_pi_and_00,
1769 ColumnAndShifts::keccakf1600_state_pi_and_01, ColumnAndShifts::keccakf1600_state_chi_00,
1770 ColumnAndShifts::keccakf1600_state_chi_01
1771 };
1772 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1773 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1774 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1775 ColumnAndShifts::bitwise_ic_simd
1776 };
1777};
1778
1780template <typename FF_>
1783
1785
1787 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_02";
1788 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1789 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1790 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1791 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1792 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_02_counts;
1793 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_02_inv;
1794 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1795 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_10,
1796 ColumnAndShifts::keccakf1600_state_rho_40, ColumnAndShifts::keccakf1600_state_pi_and_02,
1797 ColumnAndShifts::keccakf1600_state_pi_and_03, ColumnAndShifts::keccakf1600_state_chi_02,
1798 ColumnAndShifts::keccakf1600_state_chi_03
1799 };
1800 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1801 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1802 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1803 ColumnAndShifts::bitwise_ic_simd
1804 };
1805};
1806
1808template <typename FF_>
1811
1813
1815 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_04";
1816 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1817 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1818 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1819 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1820 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_04_counts;
1821 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_04_inv;
1822 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1823 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_20,
1824 ColumnAndShifts::keccakf1600_state_rho_11, ColumnAndShifts::keccakf1600_state_pi_and_04,
1825 ColumnAndShifts::keccakf1600_state_pi_and_10, ColumnAndShifts::keccakf1600_state_chi_04,
1826 ColumnAndShifts::keccakf1600_state_chi_10
1827 };
1828 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1829 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1830 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1831 ColumnAndShifts::bitwise_ic_simd
1832 };
1833};
1834
1836template <typename FF_>
1839
1841
1843 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_11";
1844 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1845 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1846 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1847 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1848 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_11_counts;
1849 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_11_inv;
1850 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1851 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_41,
1852 ColumnAndShifts::keccakf1600_state_rho_21, ColumnAndShifts::keccakf1600_state_pi_and_11,
1853 ColumnAndShifts::keccakf1600_state_pi_and_12, ColumnAndShifts::keccakf1600_state_chi_11,
1854 ColumnAndShifts::keccakf1600_state_chi_12
1855 };
1856 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1857 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1858 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1859 ColumnAndShifts::bitwise_ic_simd
1860 };
1861};
1862
1864template <typename FF_>
1867
1869
1871 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_13";
1872 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1873 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1874 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1875 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1876 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_13_counts;
1877 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_13_inv;
1878 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1879 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_01,
1880 ColumnAndShifts::keccakf1600_state_rho_31, ColumnAndShifts::keccakf1600_state_pi_and_13,
1881 ColumnAndShifts::keccakf1600_state_pi_and_14, ColumnAndShifts::keccakf1600_state_chi_13,
1882 ColumnAndShifts::keccakf1600_state_chi_14
1883 };
1884 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1885 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1886 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1887 ColumnAndShifts::bitwise_ic_simd
1888 };
1889};
1890
1892template <typename FF_>
1895
1897
1899 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_20";
1900 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1901 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1902 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1903 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1904 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_20_counts;
1905 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_20_inv;
1906 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1907 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_22,
1908 ColumnAndShifts::keccakf1600_state_rho_02, ColumnAndShifts::keccakf1600_state_pi_and_20,
1909 ColumnAndShifts::keccakf1600_state_pi_and_21, ColumnAndShifts::keccakf1600_state_chi_20,
1910 ColumnAndShifts::keccakf1600_state_chi_21
1911 };
1912 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1913 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1914 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1915 ColumnAndShifts::bitwise_ic_simd
1916 };
1917};
1918
1920template <typename FF_>
1923
1925
1927 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_22";
1928 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1929 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1930 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1931 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1932 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_22_counts;
1933 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_22_inv;
1934 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1935 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_32,
1936 ColumnAndShifts::keccakf1600_state_rho_12, ColumnAndShifts::keccakf1600_state_pi_and_22,
1937 ColumnAndShifts::keccakf1600_state_pi_and_23, ColumnAndShifts::keccakf1600_state_chi_22,
1938 ColumnAndShifts::keccakf1600_state_chi_23
1939 };
1940 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1941 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1942 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1943 ColumnAndShifts::bitwise_ic_simd
1944 };
1945};
1946
1948template <typename FF_>
1951
1953
1955 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_24";
1956 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1957 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1958 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1959 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1960 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_24_counts;
1961 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_24_inv;
1962 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1963 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_42,
1964 ColumnAndShifts::keccakf1600_state_rho_33, ColumnAndShifts::keccakf1600_state_pi_and_24,
1965 ColumnAndShifts::keccakf1600_state_pi_and_30, ColumnAndShifts::keccakf1600_state_chi_24,
1966 ColumnAndShifts::keccakf1600_state_chi_30
1967 };
1968 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1969 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1970 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1971 ColumnAndShifts::bitwise_ic_simd
1972 };
1973};
1974
1976template <typename FF_>
1979
1981
1983 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_31";
1984 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1985 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
1986 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1987 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
1988 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_31_counts;
1989 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_31_inv;
1990 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1991 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_13,
1992 ColumnAndShifts::keccakf1600_state_rho_43, ColumnAndShifts::keccakf1600_state_pi_and_31,
1993 ColumnAndShifts::keccakf1600_state_pi_and_32, ColumnAndShifts::keccakf1600_state_chi_31,
1994 ColumnAndShifts::keccakf1600_state_chi_32
1995 };
1996 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1997 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
1998 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
1999 ColumnAndShifts::bitwise_ic_simd
2000 };
2001};
2002
2004template <typename FF_>
2007
2009
2011 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_33";
2012 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2013 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
2014 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2015 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
2016 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_33_counts;
2017 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_33_inv;
2018 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2019 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_23,
2020 ColumnAndShifts::keccakf1600_state_rho_03, ColumnAndShifts::keccakf1600_state_pi_and_33,
2021 ColumnAndShifts::keccakf1600_state_pi_and_34, ColumnAndShifts::keccakf1600_state_chi_33,
2022 ColumnAndShifts::keccakf1600_state_chi_34
2023 };
2024 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
2025 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
2026 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
2027 ColumnAndShifts::bitwise_ic_simd
2028 };
2029};
2030
2032template <typename FF_>
2035
2037
2039 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_40";
2040 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2041 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
2042 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2043 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
2044 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_40_counts;
2045 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_40_inv;
2046 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2047 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_44,
2048 ColumnAndShifts::keccakf1600_state_rho_24, ColumnAndShifts::keccakf1600_state_pi_and_40,
2049 ColumnAndShifts::keccakf1600_state_pi_and_41, ColumnAndShifts::keccakf1600_state_chi_40,
2050 ColumnAndShifts::keccakf1600_state_chi_41
2051 };
2052 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
2053 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
2054 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
2055 ColumnAndShifts::bitwise_ic_simd
2056 };
2057};
2058
2060template <typename FF_>
2063
2065
2067 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_SIMD_42";
2068 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2069 static constexpr size_t LOOKUP_TUPLE_SIZE = 7;
2070 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2071 static constexpr Column DST_SELECTOR = Column::bitwise_sel_simd_64;
2072 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_simd_42_counts;
2073 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_simd_42_inv;
2074 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2075 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_04,
2076 ColumnAndShifts::keccakf1600_state_rho_34, ColumnAndShifts::keccakf1600_state_pi_and_42,
2077 ColumnAndShifts::keccakf1600_state_pi_and_43, ColumnAndShifts::keccakf1600_state_chi_42,
2078 ColumnAndShifts::keccakf1600_state_chi_43
2079 };
2080 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
2081 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ia_simd,
2082 ColumnAndShifts::bitwise_ib, ColumnAndShifts::bitwise_ib_simd, ColumnAndShifts::bitwise_ic,
2083 ColumnAndShifts::bitwise_ic_simd
2084 };
2085};
2086
2088template <typename FF_>
2091
2093
2095 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_44";
2096 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2097 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
2098 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2099 static constexpr Column DST_SELECTOR = Column::bitwise_sel_keccak;
2100 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_44_counts;
2101 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_44_inv;
2102 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2103 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_rho_14,
2104 ColumnAndShifts::keccakf1600_state_pi_and_44, ColumnAndShifts::keccakf1600_state_chi_44,
2105 ColumnAndShifts::keccakf1600_tag_u64, ColumnAndShifts::keccakf1600_tag_u64
2106 };
2107 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
2108 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib,
2109 ColumnAndShifts::bitwise_ic, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
2110 };
2111};
2112
2114template <typename FF_>
2116
2118
2120 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_ROUND_CST";
2121 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2122 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
2123 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2124 static constexpr Column DST_SELECTOR = Column::precomputed_sel_keccak;
2125 static constexpr Column COUNTS = Column::lookup_keccakf1600_round_cst_counts;
2126 static constexpr Column INVERSES = Column::lookup_keccakf1600_round_cst_inv;
2127 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2128 ColumnAndShifts::keccakf1600_round, ColumnAndShifts::keccakf1600_round_cst
2129 };
2130 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
2131 ColumnAndShifts::precomputed_idx, ColumnAndShifts::precomputed_keccak_round_constant
2132 };
2133};
2134
2136template <typename FF_>
2138
2140
2142 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_IOTA_00";
2143 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2144 static constexpr size_t LOOKUP_TUPLE_SIZE = 6;
2145 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2146 static constexpr Column DST_SELECTOR = Column::bitwise_sel_keccak;
2147 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_iota_00_counts;
2148 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_iota_00_inv;
2149 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2150 ColumnAndShifts::keccakf1600_bitwise_xor_op_id, ColumnAndShifts::keccakf1600_state_chi_00,
2151 ColumnAndShifts::keccakf1600_round_cst, ColumnAndShifts::keccakf1600_state_iota_00,
2152 ColumnAndShifts::keccakf1600_tag_u64, ColumnAndShifts::keccakf1600_tag_u64
2153 };
2154 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
2155 ColumnAndShifts::bitwise_op_id, ColumnAndShifts::bitwise_ia, ColumnAndShifts::bitwise_ib,
2156 ColumnAndShifts::bitwise_ic, ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_b
2157 };
2158};
2159
2161template <typename FF_>
2163
2165
2167 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_SRC_OUT_OF_RANGE_TOGGLE";
2168 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2169 static constexpr size_t LOOKUP_TUPLE_SIZE = 3;
2170 static constexpr Column SRC_SELECTOR = Column::keccakf1600_start;
2171 static constexpr Column DST_SELECTOR = Column::gt_sel_others;
2172 static constexpr Column COUNTS = Column::lookup_keccakf1600_src_out_of_range_toggle_counts;
2173 static constexpr Column INVERSES = Column::lookup_keccakf1600_src_out_of_range_toggle_inv;
2174 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2175 ColumnAndShifts::keccakf1600_src_addr,
2176 ColumnAndShifts::keccakf1600_highest_slice_address,
2177 ColumnAndShifts::keccakf1600_src_out_of_range_error
2178 };
2179 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::gt_input_a,
2180 ColumnAndShifts::gt_input_b,
2181 ColumnAndShifts::gt_res };
2182};
2183
2186template <typename FF_>
2189
2191
2193 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_DST_OUT_OF_RANGE_TOGGLE";
2194 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2195 static constexpr size_t LOOKUP_TUPLE_SIZE = 3;
2196 static constexpr Column SRC_SELECTOR = Column::keccakf1600_start;
2197 static constexpr Column DST_SELECTOR = Column::gt_sel_others;
2198 static constexpr Column COUNTS = Column::lookup_keccakf1600_dst_out_of_range_toggle_counts;
2199 static constexpr Column INVERSES = Column::lookup_keccakf1600_dst_out_of_range_toggle_inv;
2200 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2201 ColumnAndShifts::keccakf1600_dst_addr,
2202 ColumnAndShifts::keccakf1600_highest_slice_address,
2203 ColumnAndShifts::keccakf1600_dst_out_of_range_error
2204 };
2205 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::gt_input_a,
2206 ColumnAndShifts::gt_input_b,
2207 ColumnAndShifts::gt_res };
2208};
2209
2212template <typename FF_>
2215
2216} // namespace bb::avm2
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
Settings to be passed ot GenericLookupRelationImpl.