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_01";
18 static constexpr std::string_view RELATION_NAME = "keccakf1600";
19 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
20 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
21 static constexpr Column DST_SELECTOR = Column::bitwise_start;
22 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_01_counts;
23 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_01_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
25 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
26 ColumnAndShifts::keccakf1600_state_in_00,
27 ColumnAndShifts::keccakf1600_state_in_01,
28 ColumnAndShifts::keccakf1600_theta_xor_01,
29 ColumnAndShifts::keccakf1600_tag_u64
30 };
31 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
32 ColumnAndShifts::bitwise_acc_ia,
33 ColumnAndShifts::bitwise_acc_ib,
34 ColumnAndShifts::bitwise_acc_ic,
35 ColumnAndShifts::bitwise_tag_a };
36};
37
39template <typename FF_>
41
43
45 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_02";
46 static constexpr std::string_view RELATION_NAME = "keccakf1600";
47 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
48 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
49 static constexpr Column DST_SELECTOR = Column::bitwise_start;
50 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_02_counts;
51 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_02_inv;
52 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
53 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
54 ColumnAndShifts::keccakf1600_theta_xor_01,
55 ColumnAndShifts::keccakf1600_state_in_02,
56 ColumnAndShifts::keccakf1600_theta_xor_02,
57 ColumnAndShifts::keccakf1600_tag_u64
58 };
59 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
60 ColumnAndShifts::bitwise_acc_ia,
61 ColumnAndShifts::bitwise_acc_ib,
62 ColumnAndShifts::bitwise_acc_ic,
63 ColumnAndShifts::bitwise_tag_a };
64};
65
67template <typename FF_>
69
71
73 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_03";
74 static constexpr std::string_view RELATION_NAME = "keccakf1600";
75 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
76 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
77 static constexpr Column DST_SELECTOR = Column::bitwise_start;
78 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_03_counts;
79 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_03_inv;
80 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
81 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
82 ColumnAndShifts::keccakf1600_theta_xor_02,
83 ColumnAndShifts::keccakf1600_state_in_03,
84 ColumnAndShifts::keccakf1600_theta_xor_03,
85 ColumnAndShifts::keccakf1600_tag_u64
86 };
87 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
88 ColumnAndShifts::bitwise_acc_ia,
89 ColumnAndShifts::bitwise_acc_ib,
90 ColumnAndShifts::bitwise_acc_ic,
91 ColumnAndShifts::bitwise_tag_a };
92};
93
95template <typename FF_>
97
99
101 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_ROW_0";
102 static constexpr std::string_view RELATION_NAME = "keccakf1600";
103 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
104 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
105 static constexpr Column DST_SELECTOR = Column::bitwise_start;
106 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_0_counts;
107 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_0_inv;
108 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
109 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
110 ColumnAndShifts::keccakf1600_theta_xor_03,
111 ColumnAndShifts::keccakf1600_state_in_04,
112 ColumnAndShifts::keccakf1600_theta_xor_row_0,
113 ColumnAndShifts::keccakf1600_tag_u64
114 };
115 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
116 ColumnAndShifts::bitwise_acc_ia,
117 ColumnAndShifts::bitwise_acc_ib,
118 ColumnAndShifts::bitwise_acc_ic,
119 ColumnAndShifts::bitwise_tag_a };
120};
121
123template <typename FF_>
126
128
130 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_11";
131 static constexpr std::string_view RELATION_NAME = "keccakf1600";
132 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
133 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
134 static constexpr Column DST_SELECTOR = Column::bitwise_start;
135 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_11_counts;
136 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_11_inv;
137 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
138 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
139 ColumnAndShifts::keccakf1600_state_in_10,
140 ColumnAndShifts::keccakf1600_state_in_11,
141 ColumnAndShifts::keccakf1600_theta_xor_11,
142 ColumnAndShifts::keccakf1600_tag_u64
143 };
144 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
145 ColumnAndShifts::bitwise_acc_ia,
146 ColumnAndShifts::bitwise_acc_ib,
147 ColumnAndShifts::bitwise_acc_ic,
148 ColumnAndShifts::bitwise_tag_a };
149};
150
152template <typename FF_>
154
156
158 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_12";
159 static constexpr std::string_view RELATION_NAME = "keccakf1600";
160 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
161 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
162 static constexpr Column DST_SELECTOR = Column::bitwise_start;
163 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_12_counts;
164 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_12_inv;
165 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
166 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
167 ColumnAndShifts::keccakf1600_theta_xor_11,
168 ColumnAndShifts::keccakf1600_state_in_12,
169 ColumnAndShifts::keccakf1600_theta_xor_12,
170 ColumnAndShifts::keccakf1600_tag_u64
171 };
172 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
173 ColumnAndShifts::bitwise_acc_ia,
174 ColumnAndShifts::bitwise_acc_ib,
175 ColumnAndShifts::bitwise_acc_ic,
176 ColumnAndShifts::bitwise_tag_a };
177};
178
180template <typename FF_>
182
184
186 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_13";
187 static constexpr std::string_view RELATION_NAME = "keccakf1600";
188 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
189 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
190 static constexpr Column DST_SELECTOR = Column::bitwise_start;
191 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_13_counts;
192 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_13_inv;
193 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
194 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
195 ColumnAndShifts::keccakf1600_theta_xor_12,
196 ColumnAndShifts::keccakf1600_state_in_13,
197 ColumnAndShifts::keccakf1600_theta_xor_13,
198 ColumnAndShifts::keccakf1600_tag_u64
199 };
200 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
201 ColumnAndShifts::bitwise_acc_ia,
202 ColumnAndShifts::bitwise_acc_ib,
203 ColumnAndShifts::bitwise_acc_ic,
204 ColumnAndShifts::bitwise_tag_a };
205};
206
208template <typename FF_>
210
212
214 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_ROW_1";
215 static constexpr std::string_view RELATION_NAME = "keccakf1600";
216 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
217 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
218 static constexpr Column DST_SELECTOR = Column::bitwise_start;
219 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_1_counts;
220 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_1_inv;
221 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
222 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
223 ColumnAndShifts::keccakf1600_theta_xor_13,
224 ColumnAndShifts::keccakf1600_state_in_14,
225 ColumnAndShifts::keccakf1600_theta_xor_row_1,
226 ColumnAndShifts::keccakf1600_tag_u64
227 };
228 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
229 ColumnAndShifts::bitwise_acc_ia,
230 ColumnAndShifts::bitwise_acc_ib,
231 ColumnAndShifts::bitwise_acc_ic,
232 ColumnAndShifts::bitwise_tag_a };
233};
234
236template <typename FF_>
239
241
243 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_21";
244 static constexpr std::string_view RELATION_NAME = "keccakf1600";
245 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
246 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
247 static constexpr Column DST_SELECTOR = Column::bitwise_start;
248 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_21_counts;
249 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_21_inv;
250 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
251 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
252 ColumnAndShifts::keccakf1600_state_in_20,
253 ColumnAndShifts::keccakf1600_state_in_21,
254 ColumnAndShifts::keccakf1600_theta_xor_21,
255 ColumnAndShifts::keccakf1600_tag_u64
256 };
257 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
258 ColumnAndShifts::bitwise_acc_ia,
259 ColumnAndShifts::bitwise_acc_ib,
260 ColumnAndShifts::bitwise_acc_ic,
261 ColumnAndShifts::bitwise_tag_a };
262};
263
265template <typename FF_>
267
269
271 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_22";
272 static constexpr std::string_view RELATION_NAME = "keccakf1600";
273 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
274 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
275 static constexpr Column DST_SELECTOR = Column::bitwise_start;
276 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_22_counts;
277 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_22_inv;
278 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
279 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
280 ColumnAndShifts::keccakf1600_theta_xor_21,
281 ColumnAndShifts::keccakf1600_state_in_22,
282 ColumnAndShifts::keccakf1600_theta_xor_22,
283 ColumnAndShifts::keccakf1600_tag_u64
284 };
285 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
286 ColumnAndShifts::bitwise_acc_ia,
287 ColumnAndShifts::bitwise_acc_ib,
288 ColumnAndShifts::bitwise_acc_ic,
289 ColumnAndShifts::bitwise_tag_a };
290};
291
293template <typename FF_>
295
297
299 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_23";
300 static constexpr std::string_view RELATION_NAME = "keccakf1600";
301 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
302 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
303 static constexpr Column DST_SELECTOR = Column::bitwise_start;
304 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_23_counts;
305 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_23_inv;
306 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
307 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
308 ColumnAndShifts::keccakf1600_theta_xor_22,
309 ColumnAndShifts::keccakf1600_state_in_23,
310 ColumnAndShifts::keccakf1600_theta_xor_23,
311 ColumnAndShifts::keccakf1600_tag_u64
312 };
313 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
314 ColumnAndShifts::bitwise_acc_ia,
315 ColumnAndShifts::bitwise_acc_ib,
316 ColumnAndShifts::bitwise_acc_ic,
317 ColumnAndShifts::bitwise_tag_a };
318};
319
321template <typename FF_>
323
325
327 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_ROW_2";
328 static constexpr std::string_view RELATION_NAME = "keccakf1600";
329 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
330 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
331 static constexpr Column DST_SELECTOR = Column::bitwise_start;
332 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_2_counts;
333 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_2_inv;
334 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
335 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
336 ColumnAndShifts::keccakf1600_theta_xor_23,
337 ColumnAndShifts::keccakf1600_state_in_24,
338 ColumnAndShifts::keccakf1600_theta_xor_row_2,
339 ColumnAndShifts::keccakf1600_tag_u64
340 };
341 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
342 ColumnAndShifts::bitwise_acc_ia,
343 ColumnAndShifts::bitwise_acc_ib,
344 ColumnAndShifts::bitwise_acc_ic,
345 ColumnAndShifts::bitwise_tag_a };
346};
347
349template <typename FF_>
352
354
356 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_31";
357 static constexpr std::string_view RELATION_NAME = "keccakf1600";
358 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
359 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
360 static constexpr Column DST_SELECTOR = Column::bitwise_start;
361 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_31_counts;
362 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_31_inv;
363 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
364 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
365 ColumnAndShifts::keccakf1600_state_in_30,
366 ColumnAndShifts::keccakf1600_state_in_31,
367 ColumnAndShifts::keccakf1600_theta_xor_31,
368 ColumnAndShifts::keccakf1600_tag_u64
369 };
370 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
371 ColumnAndShifts::bitwise_acc_ia,
372 ColumnAndShifts::bitwise_acc_ib,
373 ColumnAndShifts::bitwise_acc_ic,
374 ColumnAndShifts::bitwise_tag_a };
375};
376
378template <typename FF_>
380
382
384 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_32";
385 static constexpr std::string_view RELATION_NAME = "keccakf1600";
386 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
387 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
388 static constexpr Column DST_SELECTOR = Column::bitwise_start;
389 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_32_counts;
390 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_32_inv;
391 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
392 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
393 ColumnAndShifts::keccakf1600_theta_xor_31,
394 ColumnAndShifts::keccakf1600_state_in_32,
395 ColumnAndShifts::keccakf1600_theta_xor_32,
396 ColumnAndShifts::keccakf1600_tag_u64
397 };
398 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
399 ColumnAndShifts::bitwise_acc_ia,
400 ColumnAndShifts::bitwise_acc_ib,
401 ColumnAndShifts::bitwise_acc_ic,
402 ColumnAndShifts::bitwise_tag_a };
403};
404
406template <typename FF_>
408
410
412 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_33";
413 static constexpr std::string_view RELATION_NAME = "keccakf1600";
414 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
415 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
416 static constexpr Column DST_SELECTOR = Column::bitwise_start;
417 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_33_counts;
418 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_33_inv;
419 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
420 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
421 ColumnAndShifts::keccakf1600_theta_xor_32,
422 ColumnAndShifts::keccakf1600_state_in_33,
423 ColumnAndShifts::keccakf1600_theta_xor_33,
424 ColumnAndShifts::keccakf1600_tag_u64
425 };
426 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
427 ColumnAndShifts::bitwise_acc_ia,
428 ColumnAndShifts::bitwise_acc_ib,
429 ColumnAndShifts::bitwise_acc_ic,
430 ColumnAndShifts::bitwise_tag_a };
431};
432
434template <typename FF_>
436
438
440 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_ROW_3";
441 static constexpr std::string_view RELATION_NAME = "keccakf1600";
442 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
443 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
444 static constexpr Column DST_SELECTOR = Column::bitwise_start;
445 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_3_counts;
446 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_3_inv;
447 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
448 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
449 ColumnAndShifts::keccakf1600_theta_xor_33,
450 ColumnAndShifts::keccakf1600_state_in_34,
451 ColumnAndShifts::keccakf1600_theta_xor_row_3,
452 ColumnAndShifts::keccakf1600_tag_u64
453 };
454 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
455 ColumnAndShifts::bitwise_acc_ia,
456 ColumnAndShifts::bitwise_acc_ib,
457 ColumnAndShifts::bitwise_acc_ic,
458 ColumnAndShifts::bitwise_tag_a };
459};
460
462template <typename FF_>
465
467
469 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_41";
470 static constexpr std::string_view RELATION_NAME = "keccakf1600";
471 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
472 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
473 static constexpr Column DST_SELECTOR = Column::bitwise_start;
474 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_41_counts;
475 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_41_inv;
476 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
477 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
478 ColumnAndShifts::keccakf1600_state_in_40,
479 ColumnAndShifts::keccakf1600_state_in_41,
480 ColumnAndShifts::keccakf1600_theta_xor_41,
481 ColumnAndShifts::keccakf1600_tag_u64
482 };
483 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
484 ColumnAndShifts::bitwise_acc_ia,
485 ColumnAndShifts::bitwise_acc_ib,
486 ColumnAndShifts::bitwise_acc_ic,
487 ColumnAndShifts::bitwise_tag_a };
488};
489
491template <typename FF_>
493
495
497 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_42";
498 static constexpr std::string_view RELATION_NAME = "keccakf1600";
499 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
500 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
501 static constexpr Column DST_SELECTOR = Column::bitwise_start;
502 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_42_counts;
503 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_42_inv;
504 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
505 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
506 ColumnAndShifts::keccakf1600_theta_xor_41,
507 ColumnAndShifts::keccakf1600_state_in_42,
508 ColumnAndShifts::keccakf1600_theta_xor_42,
509 ColumnAndShifts::keccakf1600_tag_u64
510 };
511 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
512 ColumnAndShifts::bitwise_acc_ia,
513 ColumnAndShifts::bitwise_acc_ib,
514 ColumnAndShifts::bitwise_acc_ic,
515 ColumnAndShifts::bitwise_tag_a };
516};
517
519template <typename FF_>
521
523
525 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_43";
526 static constexpr std::string_view RELATION_NAME = "keccakf1600";
527 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
528 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
529 static constexpr Column DST_SELECTOR = Column::bitwise_start;
530 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_43_counts;
531 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_43_inv;
532 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
533 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
534 ColumnAndShifts::keccakf1600_theta_xor_42,
535 ColumnAndShifts::keccakf1600_state_in_43,
536 ColumnAndShifts::keccakf1600_theta_xor_43,
537 ColumnAndShifts::keccakf1600_tag_u64
538 };
539 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
540 ColumnAndShifts::bitwise_acc_ia,
541 ColumnAndShifts::bitwise_acc_ib,
542 ColumnAndShifts::bitwise_acc_ic,
543 ColumnAndShifts::bitwise_tag_a };
544};
545
547template <typename FF_>
549
551
553 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_XOR_ROW_4";
554 static constexpr std::string_view RELATION_NAME = "keccakf1600";
555 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
556 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
557 static constexpr Column DST_SELECTOR = Column::bitwise_start;
558 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_xor_row_4_counts;
559 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_xor_row_4_inv;
560 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
561 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
562 ColumnAndShifts::keccakf1600_theta_xor_43,
563 ColumnAndShifts::keccakf1600_state_in_44,
564 ColumnAndShifts::keccakf1600_theta_xor_row_4,
565 ColumnAndShifts::keccakf1600_tag_u64
566 };
567 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
568 ColumnAndShifts::bitwise_acc_ia,
569 ColumnAndShifts::bitwise_acc_ib,
570 ColumnAndShifts::bitwise_acc_ic,
571 ColumnAndShifts::bitwise_tag_a };
572};
573
575template <typename FF_>
578
580
582 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_0";
583 static constexpr std::string_view RELATION_NAME = "keccakf1600";
584 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
585 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
586 static constexpr Column DST_SELECTOR = Column::bitwise_start;
587 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_0_counts;
588 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_0_inv;
589 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
590 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
591 ColumnAndShifts::keccakf1600_theta_xor_row_4,
592 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_1,
593 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
594 ColumnAndShifts::keccakf1600_tag_u64
595 };
596 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
597 ColumnAndShifts::bitwise_acc_ia,
598 ColumnAndShifts::bitwise_acc_ib,
599 ColumnAndShifts::bitwise_acc_ic,
600 ColumnAndShifts::bitwise_tag_a };
601};
602
605template <typename FF_>
608
610
612 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_1";
613 static constexpr std::string_view RELATION_NAME = "keccakf1600";
614 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
615 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
616 static constexpr Column DST_SELECTOR = Column::bitwise_start;
617 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_1_counts;
618 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_1_inv;
619 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
620 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
621 ColumnAndShifts::keccakf1600_theta_xor_row_0,
622 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_2,
623 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
624 ColumnAndShifts::keccakf1600_tag_u64
625 };
626 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
627 ColumnAndShifts::bitwise_acc_ia,
628 ColumnAndShifts::bitwise_acc_ib,
629 ColumnAndShifts::bitwise_acc_ic,
630 ColumnAndShifts::bitwise_tag_a };
631};
632
635template <typename FF_>
638
640
642 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_2";
643 static constexpr std::string_view RELATION_NAME = "keccakf1600";
644 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
645 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
646 static constexpr Column DST_SELECTOR = Column::bitwise_start;
647 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_2_counts;
648 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_2_inv;
649 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
650 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
651 ColumnAndShifts::keccakf1600_theta_xor_row_1,
652 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_3,
653 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
654 ColumnAndShifts::keccakf1600_tag_u64
655 };
656 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
657 ColumnAndShifts::bitwise_acc_ia,
658 ColumnAndShifts::bitwise_acc_ib,
659 ColumnAndShifts::bitwise_acc_ic,
660 ColumnAndShifts::bitwise_tag_a };
661};
662
665template <typename FF_>
668
670
672 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_3";
673 static constexpr std::string_view RELATION_NAME = "keccakf1600";
674 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
675 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
676 static constexpr Column DST_SELECTOR = Column::bitwise_start;
677 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_3_counts;
678 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_3_inv;
679 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
680 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
681 ColumnAndShifts::keccakf1600_theta_xor_row_2,
682 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_4,
683 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
684 ColumnAndShifts::keccakf1600_tag_u64
685 };
686 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
687 ColumnAndShifts::bitwise_acc_ia,
688 ColumnAndShifts::bitwise_acc_ib,
689 ColumnAndShifts::bitwise_acc_ic,
690 ColumnAndShifts::bitwise_tag_a };
691};
692
695template <typename FF_>
698
700
702 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_COMBINED_XOR_4";
703 static constexpr std::string_view RELATION_NAME = "keccakf1600";
704 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
705 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
706 static constexpr Column DST_SELECTOR = Column::bitwise_start;
707 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_combined_xor_4_counts;
708 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_combined_xor_4_inv;
709 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
710 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
711 ColumnAndShifts::keccakf1600_theta_xor_row_3,
712 ColumnAndShifts::keccakf1600_theta_xor_row_rotl1_0,
713 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
714 ColumnAndShifts::keccakf1600_tag_u64
715 };
716 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
717 ColumnAndShifts::bitwise_acc_ia,
718 ColumnAndShifts::bitwise_acc_ib,
719 ColumnAndShifts::bitwise_acc_ic,
720 ColumnAndShifts::bitwise_tag_a };
721};
722
725template <typename FF_>
728
730
732 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_00";
733 static constexpr std::string_view RELATION_NAME = "keccakf1600";
734 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
735 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
736 static constexpr Column DST_SELECTOR = Column::bitwise_start;
737 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_00_counts;
738 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_00_inv;
739 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
740 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
741 ColumnAndShifts::keccakf1600_state_in_00,
742 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
743 ColumnAndShifts::keccakf1600_state_theta_00,
744 ColumnAndShifts::keccakf1600_tag_u64
745 };
746 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
747 ColumnAndShifts::bitwise_acc_ia,
748 ColumnAndShifts::bitwise_acc_ib,
749 ColumnAndShifts::bitwise_acc_ic,
750 ColumnAndShifts::bitwise_tag_a };
751};
752
754template <typename FF_>
757
759
761 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_01";
762 static constexpr std::string_view RELATION_NAME = "keccakf1600";
763 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
764 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
765 static constexpr Column DST_SELECTOR = Column::bitwise_start;
766 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_01_counts;
767 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_01_inv;
768 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
769 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
770 ColumnAndShifts::keccakf1600_state_in_01,
771 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
772 ColumnAndShifts::keccakf1600_state_theta_01,
773 ColumnAndShifts::keccakf1600_tag_u64
774 };
775 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
776 ColumnAndShifts::bitwise_acc_ia,
777 ColumnAndShifts::bitwise_acc_ib,
778 ColumnAndShifts::bitwise_acc_ic,
779 ColumnAndShifts::bitwise_tag_a };
780};
781
783template <typename FF_>
786
788
790 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_02";
791 static constexpr std::string_view RELATION_NAME = "keccakf1600";
792 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
793 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
794 static constexpr Column DST_SELECTOR = Column::bitwise_start;
795 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_02_counts;
796 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_02_inv;
797 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
798 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
799 ColumnAndShifts::keccakf1600_state_in_02,
800 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
801 ColumnAndShifts::keccakf1600_state_theta_02,
802 ColumnAndShifts::keccakf1600_tag_u64
803 };
804 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
805 ColumnAndShifts::bitwise_acc_ia,
806 ColumnAndShifts::bitwise_acc_ib,
807 ColumnAndShifts::bitwise_acc_ic,
808 ColumnAndShifts::bitwise_tag_a };
809};
810
812template <typename FF_>
815
817
819 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_03";
820 static constexpr std::string_view RELATION_NAME = "keccakf1600";
821 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
822 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
823 static constexpr Column DST_SELECTOR = Column::bitwise_start;
824 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_03_counts;
825 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_03_inv;
826 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
827 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
828 ColumnAndShifts::keccakf1600_state_in_03,
829 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
830 ColumnAndShifts::keccakf1600_state_theta_03,
831 ColumnAndShifts::keccakf1600_tag_u64
832 };
833 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
834 ColumnAndShifts::bitwise_acc_ia,
835 ColumnAndShifts::bitwise_acc_ib,
836 ColumnAndShifts::bitwise_acc_ic,
837 ColumnAndShifts::bitwise_tag_a };
838};
839
841template <typename FF_>
844
846
848 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_04";
849 static constexpr std::string_view RELATION_NAME = "keccakf1600";
850 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
851 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
852 static constexpr Column DST_SELECTOR = Column::bitwise_start;
853 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_04_counts;
854 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_04_inv;
855 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
856 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
857 ColumnAndShifts::keccakf1600_state_in_04,
858 ColumnAndShifts::keccakf1600_theta_combined_xor_0,
859 ColumnAndShifts::keccakf1600_state_theta_04,
860 ColumnAndShifts::keccakf1600_tag_u64
861 };
862 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
863 ColumnAndShifts::bitwise_acc_ia,
864 ColumnAndShifts::bitwise_acc_ib,
865 ColumnAndShifts::bitwise_acc_ic,
866 ColumnAndShifts::bitwise_tag_a };
867};
868
870template <typename FF_>
873
875
877 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_10";
878 static constexpr std::string_view RELATION_NAME = "keccakf1600";
879 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
880 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
881 static constexpr Column DST_SELECTOR = Column::bitwise_start;
882 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_10_counts;
883 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_10_inv;
884 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
885 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
886 ColumnAndShifts::keccakf1600_state_in_10,
887 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
888 ColumnAndShifts::keccakf1600_state_theta_10,
889 ColumnAndShifts::keccakf1600_tag_u64
890 };
891 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
892 ColumnAndShifts::bitwise_acc_ia,
893 ColumnAndShifts::bitwise_acc_ib,
894 ColumnAndShifts::bitwise_acc_ic,
895 ColumnAndShifts::bitwise_tag_a };
896};
897
899template <typename FF_>
902
904
906 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_11";
907 static constexpr std::string_view RELATION_NAME = "keccakf1600";
908 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
909 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
910 static constexpr Column DST_SELECTOR = Column::bitwise_start;
911 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_11_counts;
912 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_11_inv;
913 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
914 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
915 ColumnAndShifts::keccakf1600_state_in_11,
916 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
917 ColumnAndShifts::keccakf1600_state_theta_11,
918 ColumnAndShifts::keccakf1600_tag_u64
919 };
920 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
921 ColumnAndShifts::bitwise_acc_ia,
922 ColumnAndShifts::bitwise_acc_ib,
923 ColumnAndShifts::bitwise_acc_ic,
924 ColumnAndShifts::bitwise_tag_a };
925};
926
928template <typename FF_>
931
933
935 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_12";
936 static constexpr std::string_view RELATION_NAME = "keccakf1600";
937 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
938 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
939 static constexpr Column DST_SELECTOR = Column::bitwise_start;
940 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_12_counts;
941 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_12_inv;
942 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
943 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
944 ColumnAndShifts::keccakf1600_state_in_12,
945 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
946 ColumnAndShifts::keccakf1600_state_theta_12,
947 ColumnAndShifts::keccakf1600_tag_u64
948 };
949 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
950 ColumnAndShifts::bitwise_acc_ia,
951 ColumnAndShifts::bitwise_acc_ib,
952 ColumnAndShifts::bitwise_acc_ic,
953 ColumnAndShifts::bitwise_tag_a };
954};
955
957template <typename FF_>
960
962
964 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_13";
965 static constexpr std::string_view RELATION_NAME = "keccakf1600";
966 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
967 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
968 static constexpr Column DST_SELECTOR = Column::bitwise_start;
969 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_13_counts;
970 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_13_inv;
971 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
972 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
973 ColumnAndShifts::keccakf1600_state_in_13,
974 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
975 ColumnAndShifts::keccakf1600_state_theta_13,
976 ColumnAndShifts::keccakf1600_tag_u64
977 };
978 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
979 ColumnAndShifts::bitwise_acc_ia,
980 ColumnAndShifts::bitwise_acc_ib,
981 ColumnAndShifts::bitwise_acc_ic,
982 ColumnAndShifts::bitwise_tag_a };
983};
984
986template <typename FF_>
989
991
993 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_14";
994 static constexpr std::string_view RELATION_NAME = "keccakf1600";
995 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
996 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
997 static constexpr Column DST_SELECTOR = Column::bitwise_start;
998 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_14_counts;
999 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_14_inv;
1000 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1001 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1002 ColumnAndShifts::keccakf1600_state_in_14,
1003 ColumnAndShifts::keccakf1600_theta_combined_xor_1,
1004 ColumnAndShifts::keccakf1600_state_theta_14,
1005 ColumnAndShifts::keccakf1600_tag_u64
1006 };
1007 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1008 ColumnAndShifts::bitwise_acc_ia,
1009 ColumnAndShifts::bitwise_acc_ib,
1010 ColumnAndShifts::bitwise_acc_ic,
1011 ColumnAndShifts::bitwise_tag_a };
1012};
1013
1015template <typename FF_>
1018
1020
1022 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_20";
1023 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1024 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1025 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1026 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1027 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_20_counts;
1028 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_20_inv;
1029 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1030 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1031 ColumnAndShifts::keccakf1600_state_in_20,
1032 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
1033 ColumnAndShifts::keccakf1600_state_theta_20,
1034 ColumnAndShifts::keccakf1600_tag_u64
1035 };
1036 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1037 ColumnAndShifts::bitwise_acc_ia,
1038 ColumnAndShifts::bitwise_acc_ib,
1039 ColumnAndShifts::bitwise_acc_ic,
1040 ColumnAndShifts::bitwise_tag_a };
1041};
1042
1044template <typename FF_>
1047
1049
1051 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_21";
1052 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1053 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1054 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1055 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1056 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_21_counts;
1057 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_21_inv;
1058 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1059 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1060 ColumnAndShifts::keccakf1600_state_in_21,
1061 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
1062 ColumnAndShifts::keccakf1600_state_theta_21,
1063 ColumnAndShifts::keccakf1600_tag_u64
1064 };
1065 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1066 ColumnAndShifts::bitwise_acc_ia,
1067 ColumnAndShifts::bitwise_acc_ib,
1068 ColumnAndShifts::bitwise_acc_ic,
1069 ColumnAndShifts::bitwise_tag_a };
1070};
1071
1073template <typename FF_>
1076
1078
1080 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_22";
1081 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1082 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1083 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1084 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1085 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_22_counts;
1086 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_22_inv;
1087 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1088 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1089 ColumnAndShifts::keccakf1600_state_in_22,
1090 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
1091 ColumnAndShifts::keccakf1600_state_theta_22,
1092 ColumnAndShifts::keccakf1600_tag_u64
1093 };
1094 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1095 ColumnAndShifts::bitwise_acc_ia,
1096 ColumnAndShifts::bitwise_acc_ib,
1097 ColumnAndShifts::bitwise_acc_ic,
1098 ColumnAndShifts::bitwise_tag_a };
1099};
1100
1102template <typename FF_>
1105
1107
1109 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_23";
1110 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1111 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1112 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1113 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1114 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_23_counts;
1115 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_23_inv;
1116 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1117 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1118 ColumnAndShifts::keccakf1600_state_in_23,
1119 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
1120 ColumnAndShifts::keccakf1600_state_theta_23,
1121 ColumnAndShifts::keccakf1600_tag_u64
1122 };
1123 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1124 ColumnAndShifts::bitwise_acc_ia,
1125 ColumnAndShifts::bitwise_acc_ib,
1126 ColumnAndShifts::bitwise_acc_ic,
1127 ColumnAndShifts::bitwise_tag_a };
1128};
1129
1131template <typename FF_>
1134
1136
1138 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_24";
1139 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1140 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1141 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1142 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1143 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_24_counts;
1144 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_24_inv;
1145 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1146 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1147 ColumnAndShifts::keccakf1600_state_in_24,
1148 ColumnAndShifts::keccakf1600_theta_combined_xor_2,
1149 ColumnAndShifts::keccakf1600_state_theta_24,
1150 ColumnAndShifts::keccakf1600_tag_u64
1151 };
1152 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1153 ColumnAndShifts::bitwise_acc_ia,
1154 ColumnAndShifts::bitwise_acc_ib,
1155 ColumnAndShifts::bitwise_acc_ic,
1156 ColumnAndShifts::bitwise_tag_a };
1157};
1158
1160template <typename FF_>
1163
1165
1167 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_30";
1168 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1169 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1170 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1171 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1172 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_30_counts;
1173 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_30_inv;
1174 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1175 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1176 ColumnAndShifts::keccakf1600_state_in_30,
1177 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
1178 ColumnAndShifts::keccakf1600_state_theta_30,
1179 ColumnAndShifts::keccakf1600_tag_u64
1180 };
1181 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1182 ColumnAndShifts::bitwise_acc_ia,
1183 ColumnAndShifts::bitwise_acc_ib,
1184 ColumnAndShifts::bitwise_acc_ic,
1185 ColumnAndShifts::bitwise_tag_a };
1186};
1187
1189template <typename FF_>
1192
1194
1196 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_31";
1197 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1198 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1199 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1200 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1201 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_31_counts;
1202 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_31_inv;
1203 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1204 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1205 ColumnAndShifts::keccakf1600_state_in_31,
1206 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
1207 ColumnAndShifts::keccakf1600_state_theta_31,
1208 ColumnAndShifts::keccakf1600_tag_u64
1209 };
1210 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1211 ColumnAndShifts::bitwise_acc_ia,
1212 ColumnAndShifts::bitwise_acc_ib,
1213 ColumnAndShifts::bitwise_acc_ic,
1214 ColumnAndShifts::bitwise_tag_a };
1215};
1216
1218template <typename FF_>
1221
1223
1225 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_32";
1226 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1227 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1228 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1229 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1230 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_32_counts;
1231 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_32_inv;
1232 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1233 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1234 ColumnAndShifts::keccakf1600_state_in_32,
1235 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
1236 ColumnAndShifts::keccakf1600_state_theta_32,
1237 ColumnAndShifts::keccakf1600_tag_u64
1238 };
1239 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1240 ColumnAndShifts::bitwise_acc_ia,
1241 ColumnAndShifts::bitwise_acc_ib,
1242 ColumnAndShifts::bitwise_acc_ic,
1243 ColumnAndShifts::bitwise_tag_a };
1244};
1245
1247template <typename FF_>
1250
1252
1254 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_33";
1255 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1256 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1257 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1258 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1259 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_33_counts;
1260 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_33_inv;
1261 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1262 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1263 ColumnAndShifts::keccakf1600_state_in_33,
1264 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
1265 ColumnAndShifts::keccakf1600_state_theta_33,
1266 ColumnAndShifts::keccakf1600_tag_u64
1267 };
1268 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1269 ColumnAndShifts::bitwise_acc_ia,
1270 ColumnAndShifts::bitwise_acc_ib,
1271 ColumnAndShifts::bitwise_acc_ic,
1272 ColumnAndShifts::bitwise_tag_a };
1273};
1274
1276template <typename FF_>
1279
1281
1283 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_34";
1284 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1285 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1286 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1287 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1288 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_34_counts;
1289 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_34_inv;
1290 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1291 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1292 ColumnAndShifts::keccakf1600_state_in_34,
1293 ColumnAndShifts::keccakf1600_theta_combined_xor_3,
1294 ColumnAndShifts::keccakf1600_state_theta_34,
1295 ColumnAndShifts::keccakf1600_tag_u64
1296 };
1297 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1298 ColumnAndShifts::bitwise_acc_ia,
1299 ColumnAndShifts::bitwise_acc_ib,
1300 ColumnAndShifts::bitwise_acc_ic,
1301 ColumnAndShifts::bitwise_tag_a };
1302};
1303
1305template <typename FF_>
1308
1310
1312 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_40";
1313 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1314 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1315 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1316 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1317 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_40_counts;
1318 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_40_inv;
1319 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1320 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1321 ColumnAndShifts::keccakf1600_state_in_40,
1322 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
1323 ColumnAndShifts::keccakf1600_state_theta_40,
1324 ColumnAndShifts::keccakf1600_tag_u64
1325 };
1326 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1327 ColumnAndShifts::bitwise_acc_ia,
1328 ColumnAndShifts::bitwise_acc_ib,
1329 ColumnAndShifts::bitwise_acc_ic,
1330 ColumnAndShifts::bitwise_tag_a };
1331};
1332
1334template <typename FF_>
1337
1339
1341 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_41";
1342 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1343 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1344 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1345 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1346 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_41_counts;
1347 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_41_inv;
1348 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1349 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1350 ColumnAndShifts::keccakf1600_state_in_41,
1351 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
1352 ColumnAndShifts::keccakf1600_state_theta_41,
1353 ColumnAndShifts::keccakf1600_tag_u64
1354 };
1355 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1356 ColumnAndShifts::bitwise_acc_ia,
1357 ColumnAndShifts::bitwise_acc_ib,
1358 ColumnAndShifts::bitwise_acc_ic,
1359 ColumnAndShifts::bitwise_tag_a };
1360};
1361
1363template <typename FF_>
1366
1368
1370 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_42";
1371 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1372 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1373 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1374 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1375 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_42_counts;
1376 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_42_inv;
1377 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1378 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1379 ColumnAndShifts::keccakf1600_state_in_42,
1380 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
1381 ColumnAndShifts::keccakf1600_state_theta_42,
1382 ColumnAndShifts::keccakf1600_tag_u64
1383 };
1384 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1385 ColumnAndShifts::bitwise_acc_ia,
1386 ColumnAndShifts::bitwise_acc_ib,
1387 ColumnAndShifts::bitwise_acc_ic,
1388 ColumnAndShifts::bitwise_tag_a };
1389};
1390
1392template <typename FF_>
1395
1397
1399 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_43";
1400 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1401 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1402 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1403 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1404 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_43_counts;
1405 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_43_inv;
1406 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1407 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1408 ColumnAndShifts::keccakf1600_state_in_43,
1409 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
1410 ColumnAndShifts::keccakf1600_state_theta_43,
1411 ColumnAndShifts::keccakf1600_tag_u64
1412 };
1413 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1414 ColumnAndShifts::bitwise_acc_ia,
1415 ColumnAndShifts::bitwise_acc_ib,
1416 ColumnAndShifts::bitwise_acc_ic,
1417 ColumnAndShifts::bitwise_tag_a };
1418};
1419
1421template <typename FF_>
1424
1426
1428 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_THETA_44";
1429 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1430 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
1431 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1432 static constexpr Column DST_SELECTOR = Column::bitwise_start;
1433 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_theta_44_counts;
1434 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_theta_44_inv;
1435 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1436 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
1437 ColumnAndShifts::keccakf1600_state_in_44,
1438 ColumnAndShifts::keccakf1600_theta_combined_xor_4,
1439 ColumnAndShifts::keccakf1600_state_theta_44,
1440 ColumnAndShifts::keccakf1600_tag_u64
1441 };
1442 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
1443 ColumnAndShifts::bitwise_acc_ia,
1444 ColumnAndShifts::bitwise_acc_ib,
1445 ColumnAndShifts::bitwise_acc_ic,
1446 ColumnAndShifts::bitwise_tag_a };
1447};
1448
1450template <typename FF_>
1453
1455
1457 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_02_RANGE";
1458 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1459 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1460 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1461 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1462 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_02_range_counts;
1463 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_02_range_inv;
1464 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1465 ColumnAndShifts::keccakf1600_state_theta_hi_02, ColumnAndShifts::keccakf1600_rot_len_02
1466 };
1467 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1468 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1469 };
1470};
1471
1474template <typename FF_>
1477
1479
1481 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_04_RANGE";
1482 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1483 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1484 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1485 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1486 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_04_range_counts;
1487 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_04_range_inv;
1488 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1489 ColumnAndShifts::keccakf1600_state_theta_hi_04, ColumnAndShifts::keccakf1600_rot_len_04
1490 };
1491 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1492 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1493 };
1494};
1495
1498template <typename FF_>
1501
1503
1505 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_10_RANGE";
1506 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1507 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1508 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1509 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1510 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_10_range_counts;
1511 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_10_range_inv;
1512 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1513 ColumnAndShifts::keccakf1600_state_theta_hi_10, ColumnAndShifts::keccakf1600_rot_len_10
1514 };
1515 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1516 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1517 };
1518};
1519
1522template <typename FF_>
1525
1527
1529 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_12_RANGE";
1530 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1531 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1532 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1533 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1534 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_12_range_counts;
1535 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_12_range_inv;
1536 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1537 ColumnAndShifts::keccakf1600_state_theta_hi_12, ColumnAndShifts::keccakf1600_rot_len_12
1538 };
1539 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1540 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1541 };
1542};
1543
1546template <typename FF_>
1549
1551
1553 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_14_RANGE";
1554 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1555 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1556 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1557 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1558 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_14_range_counts;
1559 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_14_range_inv;
1560 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1561 ColumnAndShifts::keccakf1600_state_theta_hi_14, ColumnAndShifts::keccakf1600_rot_len_14
1562 };
1563 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1564 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1565 };
1566};
1567
1570template <typename FF_>
1573
1575
1577 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_21_RANGE";
1578 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1579 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1580 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1581 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1582 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_21_range_counts;
1583 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_21_range_inv;
1584 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1585 ColumnAndShifts::keccakf1600_state_theta_hi_21, ColumnAndShifts::keccakf1600_rot_len_21
1586 };
1587 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1588 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1589 };
1590};
1591
1594template <typename FF_>
1597
1599
1601 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_23_RANGE";
1602 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1603 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1604 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1605 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1606 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_23_range_counts;
1607 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_23_range_inv;
1608 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1609 ColumnAndShifts::keccakf1600_state_theta_hi_23, ColumnAndShifts::keccakf1600_rot_len_23
1610 };
1611 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1612 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1613 };
1614};
1615
1618template <typename FF_>
1621
1623
1625 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_30_RANGE";
1626 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1627 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1628 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1629 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1630 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_30_range_counts;
1631 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_30_range_inv;
1632 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1633 ColumnAndShifts::keccakf1600_state_theta_hi_30, ColumnAndShifts::keccakf1600_rot_len_30
1634 };
1635 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1636 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1637 };
1638};
1639
1642template <typename FF_>
1645
1647
1649 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_32_RANGE";
1650 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1651 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1652 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1653 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1654 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_32_range_counts;
1655 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_32_range_inv;
1656 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1657 ColumnAndShifts::keccakf1600_state_theta_hi_32, ColumnAndShifts::keccakf1600_rot_len_32
1658 };
1659 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1660 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1661 };
1662};
1663
1666template <typename FF_>
1669
1671
1673 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_33_RANGE";
1674 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1675 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1676 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1677 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1678 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_33_range_counts;
1679 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_33_range_inv;
1680 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1681 ColumnAndShifts::keccakf1600_state_theta_hi_33, ColumnAndShifts::keccakf1600_rot_len_33
1682 };
1683 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1684 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1685 };
1686};
1687
1690template <typename FF_>
1693
1695
1697 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_40_RANGE";
1698 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1699 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1700 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1701 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1702 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_40_range_counts;
1703 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_40_range_inv;
1704 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1705 ColumnAndShifts::keccakf1600_state_theta_hi_40, ColumnAndShifts::keccakf1600_rot_len_40
1706 };
1707 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1708 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1709 };
1710};
1711
1714template <typename FF_>
1717
1719
1721 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_41_RANGE";
1722 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1723 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1724 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1725 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1726 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_41_range_counts;
1727 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_41_range_inv;
1728 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1729 ColumnAndShifts::keccakf1600_state_theta_hi_41, ColumnAndShifts::keccakf1600_rot_len_41
1730 };
1731 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1732 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1733 };
1734};
1735
1738template <typename FF_>
1741
1743
1745 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_43_RANGE";
1746 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1747 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1748 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1749 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1750 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_43_range_counts;
1751 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_43_range_inv;
1752 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1753 ColumnAndShifts::keccakf1600_state_theta_hi_43, ColumnAndShifts::keccakf1600_rot_len_43
1754 };
1755 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1756 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1757 };
1758};
1759
1762template <typename FF_>
1765
1767
1769 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_44_RANGE";
1770 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1771 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1772 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1773 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1774 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_44_range_counts;
1775 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_44_range_inv;
1776 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1777 ColumnAndShifts::keccakf1600_state_theta_hi_44, ColumnAndShifts::keccakf1600_rot_len_44
1778 };
1779 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1780 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1781 };
1782};
1783
1786template <typename FF_>
1789
1791
1793 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_01_RANGE";
1794 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1795 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1796 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1797 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1798 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_01_range_counts;
1799 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_01_range_inv;
1800 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1801 ColumnAndShifts::keccakf1600_state_theta_low_01, ColumnAndShifts::keccakf1600_rot_64_min_len_01
1802 };
1803 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1804 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1805 };
1806};
1807
1810template <typename FF_>
1813
1815
1817 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_03_RANGE";
1818 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1819 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1820 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1821 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1822 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_03_range_counts;
1823 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_03_range_inv;
1824 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1825 ColumnAndShifts::keccakf1600_state_theta_low_03, ColumnAndShifts::keccakf1600_rot_64_min_len_03
1826 };
1827 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1828 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1829 };
1830};
1831
1834template <typename FF_>
1837
1839
1841 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_11_RANGE";
1842 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1843 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1844 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1845 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1846 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_11_range_counts;
1847 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_11_range_inv;
1848 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1849 ColumnAndShifts::keccakf1600_state_theta_low_11, ColumnAndShifts::keccakf1600_rot_64_min_len_11
1850 };
1851 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1852 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1853 };
1854};
1855
1858template <typename FF_>
1861
1863
1865 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_13_RANGE";
1866 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1867 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1868 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1869 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1870 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_13_range_counts;
1871 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_13_range_inv;
1872 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1873 ColumnAndShifts::keccakf1600_state_theta_low_13, ColumnAndShifts::keccakf1600_rot_64_min_len_13
1874 };
1875 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1876 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1877 };
1878};
1879
1882template <typename FF_>
1885
1887
1889 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_20_RANGE";
1890 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1891 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1892 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1893 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1894 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_20_range_counts;
1895 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_20_range_inv;
1896 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1897 ColumnAndShifts::keccakf1600_state_theta_low_20, ColumnAndShifts::keccakf1600_rot_64_min_len_20
1898 };
1899 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1900 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1901 };
1902};
1903
1906template <typename FF_>
1909
1911
1913 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_22_RANGE";
1914 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1915 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1916 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1917 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1918 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_22_range_counts;
1919 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_22_range_inv;
1920 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1921 ColumnAndShifts::keccakf1600_state_theta_low_22, ColumnAndShifts::keccakf1600_rot_64_min_len_22
1922 };
1923 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1924 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1925 };
1926};
1927
1930template <typename FF_>
1933
1935
1937 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_24_RANGE";
1938 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1939 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1940 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1941 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1942 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_24_range_counts;
1943 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_24_range_inv;
1944 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1945 ColumnAndShifts::keccakf1600_state_theta_low_24, ColumnAndShifts::keccakf1600_rot_64_min_len_24
1946 };
1947 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1948 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1949 };
1950};
1951
1954template <typename FF_>
1957
1959
1961 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_31_RANGE";
1962 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1963 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1964 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1965 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1966 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_31_range_counts;
1967 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_31_range_inv;
1968 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1969 ColumnAndShifts::keccakf1600_state_theta_low_31, ColumnAndShifts::keccakf1600_rot_64_min_len_31
1970 };
1971 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1972 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1973 };
1974};
1975
1978template <typename FF_>
1981
1983
1985 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_34_RANGE";
1986 static constexpr std::string_view RELATION_NAME = "keccakf1600";
1987 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
1988 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
1989 static constexpr Column DST_SELECTOR = Column::range_check_sel;
1990 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_34_range_counts;
1991 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_34_range_inv;
1992 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
1993 ColumnAndShifts::keccakf1600_state_theta_low_34, ColumnAndShifts::keccakf1600_rot_64_min_len_34
1994 };
1995 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
1996 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
1997 };
1998};
1999
2002template <typename FF_>
2005
2007
2009 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_THETA_LIMB_42_RANGE";
2010 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2011 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
2012 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2013 static constexpr Column DST_SELECTOR = Column::range_check_sel;
2014 static constexpr Column COUNTS = Column::lookup_keccakf1600_theta_limb_42_range_counts;
2015 static constexpr Column INVERSES = Column::lookup_keccakf1600_theta_limb_42_range_inv;
2016 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2017 ColumnAndShifts::keccakf1600_state_theta_low_42, ColumnAndShifts::keccakf1600_rot_64_min_len_42
2018 };
2019 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
2020 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
2021 };
2022};
2023
2026template <typename FF_>
2029
2031
2033 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_00";
2034 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2035 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2036 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2037 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2038 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_00_counts;
2039 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_00_inv;
2040 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2041 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2042 ColumnAndShifts::keccakf1600_state_pi_not_10,
2043 ColumnAndShifts::keccakf1600_state_rho_22,
2044 ColumnAndShifts::keccakf1600_state_pi_and_00,
2045 ColumnAndShifts::keccakf1600_tag_u64
2046 };
2047 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2048 ColumnAndShifts::bitwise_acc_ia,
2049 ColumnAndShifts::bitwise_acc_ib,
2050 ColumnAndShifts::bitwise_acc_ic,
2051 ColumnAndShifts::bitwise_tag_a };
2052};
2053
2055template <typename FF_>
2058
2060
2062 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_01";
2063 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2064 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2065 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2066 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2067 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_01_counts;
2068 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_01_inv;
2069 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2070 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2071 ColumnAndShifts::keccakf1600_state_pi_not_11,
2072 ColumnAndShifts::keccakf1600_state_rho_02,
2073 ColumnAndShifts::keccakf1600_state_pi_and_01,
2074 ColumnAndShifts::keccakf1600_tag_u64
2075 };
2076 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2077 ColumnAndShifts::bitwise_acc_ia,
2078 ColumnAndShifts::bitwise_acc_ib,
2079 ColumnAndShifts::bitwise_acc_ic,
2080 ColumnAndShifts::bitwise_tag_a };
2081};
2082
2084template <typename FF_>
2087
2089
2091 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_02";
2092 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2093 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2094 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2095 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2096 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_02_counts;
2097 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_02_inv;
2098 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2099 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2100 ColumnAndShifts::keccakf1600_state_pi_not_12,
2101 ColumnAndShifts::keccakf1600_state_rho_32,
2102 ColumnAndShifts::keccakf1600_state_pi_and_02,
2103 ColumnAndShifts::keccakf1600_tag_u64
2104 };
2105 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2106 ColumnAndShifts::bitwise_acc_ia,
2107 ColumnAndShifts::bitwise_acc_ib,
2108 ColumnAndShifts::bitwise_acc_ic,
2109 ColumnAndShifts::bitwise_tag_a };
2110};
2111
2113template <typename FF_>
2116
2118
2120 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_03";
2121 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2122 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2123 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2124 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2125 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_03_counts;
2126 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_03_inv;
2127 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2128 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2129 ColumnAndShifts::keccakf1600_state_pi_not_13,
2130 ColumnAndShifts::keccakf1600_state_rho_12,
2131 ColumnAndShifts::keccakf1600_state_pi_and_03,
2132 ColumnAndShifts::keccakf1600_tag_u64
2133 };
2134 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2135 ColumnAndShifts::bitwise_acc_ia,
2136 ColumnAndShifts::bitwise_acc_ib,
2137 ColumnAndShifts::bitwise_acc_ic,
2138 ColumnAndShifts::bitwise_tag_a };
2139};
2140
2142template <typename FF_>
2145
2147
2149 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_04";
2150 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2151 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2152 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2153 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2154 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_04_counts;
2155 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_04_inv;
2156 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2157 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2158 ColumnAndShifts::keccakf1600_state_pi_not_14,
2159 ColumnAndShifts::keccakf1600_state_rho_42,
2160 ColumnAndShifts::keccakf1600_state_pi_and_04,
2161 ColumnAndShifts::keccakf1600_tag_u64
2162 };
2163 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2164 ColumnAndShifts::bitwise_acc_ia,
2165 ColumnAndShifts::bitwise_acc_ib,
2166 ColumnAndShifts::bitwise_acc_ic,
2167 ColumnAndShifts::bitwise_tag_a };
2168};
2169
2171template <typename FF_>
2174
2176
2178 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_10";
2179 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2180 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2181 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2182 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2183 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_10_counts;
2184 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_10_inv;
2185 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2186 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2187 ColumnAndShifts::keccakf1600_state_pi_not_20,
2188 ColumnAndShifts::keccakf1600_state_rho_33,
2189 ColumnAndShifts::keccakf1600_state_pi_and_10,
2190 ColumnAndShifts::keccakf1600_tag_u64
2191 };
2192 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2193 ColumnAndShifts::bitwise_acc_ia,
2194 ColumnAndShifts::bitwise_acc_ib,
2195 ColumnAndShifts::bitwise_acc_ic,
2196 ColumnAndShifts::bitwise_tag_a };
2197};
2198
2200template <typename FF_>
2203
2205
2207 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_11";
2208 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2209 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2210 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2211 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2212 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_11_counts;
2213 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_11_inv;
2214 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2215 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2216 ColumnAndShifts::keccakf1600_state_pi_not_21,
2217 ColumnAndShifts::keccakf1600_state_rho_13,
2218 ColumnAndShifts::keccakf1600_state_pi_and_11,
2219 ColumnAndShifts::keccakf1600_tag_u64
2220 };
2221 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2222 ColumnAndShifts::bitwise_acc_ia,
2223 ColumnAndShifts::bitwise_acc_ib,
2224 ColumnAndShifts::bitwise_acc_ic,
2225 ColumnAndShifts::bitwise_tag_a };
2226};
2227
2229template <typename FF_>
2232
2234
2236 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_12";
2237 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2238 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2239 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2240 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2241 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_12_counts;
2242 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_12_inv;
2243 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2244 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2245 ColumnAndShifts::keccakf1600_state_pi_not_22,
2246 ColumnAndShifts::keccakf1600_state_rho_43,
2247 ColumnAndShifts::keccakf1600_state_pi_and_12,
2248 ColumnAndShifts::keccakf1600_tag_u64
2249 };
2250 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2251 ColumnAndShifts::bitwise_acc_ia,
2252 ColumnAndShifts::bitwise_acc_ib,
2253 ColumnAndShifts::bitwise_acc_ic,
2254 ColumnAndShifts::bitwise_tag_a };
2255};
2256
2258template <typename FF_>
2261
2263
2265 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_13";
2266 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2267 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2268 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2269 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2270 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_13_counts;
2271 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_13_inv;
2272 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2273 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2274 ColumnAndShifts::keccakf1600_state_pi_not_23,
2275 ColumnAndShifts::keccakf1600_state_rho_23,
2276 ColumnAndShifts::keccakf1600_state_pi_and_13,
2277 ColumnAndShifts::keccakf1600_tag_u64
2278 };
2279 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2280 ColumnAndShifts::bitwise_acc_ia,
2281 ColumnAndShifts::bitwise_acc_ib,
2282 ColumnAndShifts::bitwise_acc_ic,
2283 ColumnAndShifts::bitwise_tag_a };
2284};
2285
2287template <typename FF_>
2290
2292
2294 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_14";
2295 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2296 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2297 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2298 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2299 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_14_counts;
2300 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_14_inv;
2301 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2302 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2303 ColumnAndShifts::keccakf1600_state_pi_not_24,
2304 ColumnAndShifts::keccakf1600_state_rho_03,
2305 ColumnAndShifts::keccakf1600_state_pi_and_14,
2306 ColumnAndShifts::keccakf1600_tag_u64
2307 };
2308 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2309 ColumnAndShifts::bitwise_acc_ia,
2310 ColumnAndShifts::bitwise_acc_ib,
2311 ColumnAndShifts::bitwise_acc_ic,
2312 ColumnAndShifts::bitwise_tag_a };
2313};
2314
2316template <typename FF_>
2319
2321
2323 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_20";
2324 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2325 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2326 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2327 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2328 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_20_counts;
2329 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_20_inv;
2330 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2331 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2332 ColumnAndShifts::keccakf1600_state_pi_not_30,
2333 ColumnAndShifts::keccakf1600_state_rho_44,
2334 ColumnAndShifts::keccakf1600_state_pi_and_20,
2335 ColumnAndShifts::keccakf1600_tag_u64
2336 };
2337 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2338 ColumnAndShifts::bitwise_acc_ia,
2339 ColumnAndShifts::bitwise_acc_ib,
2340 ColumnAndShifts::bitwise_acc_ic,
2341 ColumnAndShifts::bitwise_tag_a };
2342};
2343
2345template <typename FF_>
2348
2350
2352 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_21";
2353 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2354 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2355 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2356 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2357 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_21_counts;
2358 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_21_inv;
2359 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2360 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2361 ColumnAndShifts::keccakf1600_state_pi_not_31,
2362 ColumnAndShifts::keccakf1600_state_rho_24,
2363 ColumnAndShifts::keccakf1600_state_pi_and_21,
2364 ColumnAndShifts::keccakf1600_tag_u64
2365 };
2366 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2367 ColumnAndShifts::bitwise_acc_ia,
2368 ColumnAndShifts::bitwise_acc_ib,
2369 ColumnAndShifts::bitwise_acc_ic,
2370 ColumnAndShifts::bitwise_tag_a };
2371};
2372
2374template <typename FF_>
2377
2379
2381 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_22";
2382 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2383 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2384 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2385 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2386 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_22_counts;
2387 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_22_inv;
2388 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2389 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2390 ColumnAndShifts::keccakf1600_state_pi_not_32,
2391 ColumnAndShifts::keccakf1600_state_rho_04,
2392 ColumnAndShifts::keccakf1600_state_pi_and_22,
2393 ColumnAndShifts::keccakf1600_tag_u64
2394 };
2395 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2396 ColumnAndShifts::bitwise_acc_ia,
2397 ColumnAndShifts::bitwise_acc_ib,
2398 ColumnAndShifts::bitwise_acc_ic,
2399 ColumnAndShifts::bitwise_tag_a };
2400};
2401
2403template <typename FF_>
2406
2408
2410 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_23";
2411 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2412 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2413 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2414 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2415 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_23_counts;
2416 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_23_inv;
2417 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2418 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2419 ColumnAndShifts::keccakf1600_state_pi_not_33,
2420 ColumnAndShifts::keccakf1600_state_rho_34,
2421 ColumnAndShifts::keccakf1600_state_pi_and_23,
2422 ColumnAndShifts::keccakf1600_tag_u64
2423 };
2424 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2425 ColumnAndShifts::bitwise_acc_ia,
2426 ColumnAndShifts::bitwise_acc_ib,
2427 ColumnAndShifts::bitwise_acc_ic,
2428 ColumnAndShifts::bitwise_tag_a };
2429};
2430
2432template <typename FF_>
2435
2437
2439 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_24";
2440 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2441 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2442 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2443 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2444 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_24_counts;
2445 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_24_inv;
2446 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2447 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2448 ColumnAndShifts::keccakf1600_state_pi_not_34,
2449 ColumnAndShifts::keccakf1600_state_rho_14,
2450 ColumnAndShifts::keccakf1600_state_pi_and_24,
2451 ColumnAndShifts::keccakf1600_tag_u64
2452 };
2453 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2454 ColumnAndShifts::bitwise_acc_ia,
2455 ColumnAndShifts::bitwise_acc_ib,
2456 ColumnAndShifts::bitwise_acc_ic,
2457 ColumnAndShifts::bitwise_tag_a };
2458};
2459
2461template <typename FF_>
2464
2466
2468 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_30";
2469 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2470 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2471 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2472 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2473 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_30_counts;
2474 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_30_inv;
2475 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2476 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2477 ColumnAndShifts::keccakf1600_state_pi_not_40,
2478 ColumnAndShifts::keccakf1600_state_theta_00,
2479 ColumnAndShifts::keccakf1600_state_pi_and_30,
2480 ColumnAndShifts::keccakf1600_tag_u64
2481 };
2482 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2483 ColumnAndShifts::bitwise_acc_ia,
2484 ColumnAndShifts::bitwise_acc_ib,
2485 ColumnAndShifts::bitwise_acc_ic,
2486 ColumnAndShifts::bitwise_tag_a };
2487};
2488
2490template <typename FF_>
2493
2495
2497 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_31";
2498 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2499 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2500 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2501 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2502 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_31_counts;
2503 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_31_inv;
2504 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2505 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2506 ColumnAndShifts::keccakf1600_state_pi_not_41,
2507 ColumnAndShifts::keccakf1600_state_rho_30,
2508 ColumnAndShifts::keccakf1600_state_pi_and_31,
2509 ColumnAndShifts::keccakf1600_tag_u64
2510 };
2511 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2512 ColumnAndShifts::bitwise_acc_ia,
2513 ColumnAndShifts::bitwise_acc_ib,
2514 ColumnAndShifts::bitwise_acc_ic,
2515 ColumnAndShifts::bitwise_tag_a };
2516};
2517
2519template <typename FF_>
2522
2524
2526 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_32";
2527 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2528 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2529 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2530 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2531 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_32_counts;
2532 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_32_inv;
2533 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2534 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2535 ColumnAndShifts::keccakf1600_state_pi_not_42,
2536 ColumnAndShifts::keccakf1600_state_rho_10,
2537 ColumnAndShifts::keccakf1600_state_pi_and_32,
2538 ColumnAndShifts::keccakf1600_tag_u64
2539 };
2540 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2541 ColumnAndShifts::bitwise_acc_ia,
2542 ColumnAndShifts::bitwise_acc_ib,
2543 ColumnAndShifts::bitwise_acc_ic,
2544 ColumnAndShifts::bitwise_tag_a };
2545};
2546
2548template <typename FF_>
2551
2553
2555 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_33";
2556 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2557 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2558 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2559 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2560 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_33_counts;
2561 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_33_inv;
2562 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2563 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2564 ColumnAndShifts::keccakf1600_state_pi_not_43,
2565 ColumnAndShifts::keccakf1600_state_rho_40,
2566 ColumnAndShifts::keccakf1600_state_pi_and_33,
2567 ColumnAndShifts::keccakf1600_tag_u64
2568 };
2569 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2570 ColumnAndShifts::bitwise_acc_ia,
2571 ColumnAndShifts::bitwise_acc_ib,
2572 ColumnAndShifts::bitwise_acc_ic,
2573 ColumnAndShifts::bitwise_tag_a };
2574};
2575
2577template <typename FF_>
2580
2582
2584 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_34";
2585 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2586 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2587 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2588 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2589 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_34_counts;
2590 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_34_inv;
2591 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2592 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2593 ColumnAndShifts::keccakf1600_state_pi_not_44,
2594 ColumnAndShifts::keccakf1600_state_rho_20,
2595 ColumnAndShifts::keccakf1600_state_pi_and_34,
2596 ColumnAndShifts::keccakf1600_tag_u64
2597 };
2598 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2599 ColumnAndShifts::bitwise_acc_ia,
2600 ColumnAndShifts::bitwise_acc_ib,
2601 ColumnAndShifts::bitwise_acc_ic,
2602 ColumnAndShifts::bitwise_tag_a };
2603};
2604
2606template <typename FF_>
2609
2611
2613 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_40";
2614 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2615 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2616 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2617 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2618 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_40_counts;
2619 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_40_inv;
2620 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2621 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2622 ColumnAndShifts::keccakf1600_state_pi_not_00,
2623 ColumnAndShifts::keccakf1600_state_rho_11,
2624 ColumnAndShifts::keccakf1600_state_pi_and_40,
2625 ColumnAndShifts::keccakf1600_tag_u64
2626 };
2627 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2628 ColumnAndShifts::bitwise_acc_ia,
2629 ColumnAndShifts::bitwise_acc_ib,
2630 ColumnAndShifts::bitwise_acc_ic,
2631 ColumnAndShifts::bitwise_tag_a };
2632};
2633
2635template <typename FF_>
2638
2640
2642 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_41";
2643 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2644 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2645 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2646 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2647 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_41_counts;
2648 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_41_inv;
2649 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2650 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2651 ColumnAndShifts::keccakf1600_state_pi_not_01,
2652 ColumnAndShifts::keccakf1600_state_rho_41,
2653 ColumnAndShifts::keccakf1600_state_pi_and_41,
2654 ColumnAndShifts::keccakf1600_tag_u64
2655 };
2656 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2657 ColumnAndShifts::bitwise_acc_ia,
2658 ColumnAndShifts::bitwise_acc_ib,
2659 ColumnAndShifts::bitwise_acc_ic,
2660 ColumnAndShifts::bitwise_tag_a };
2661};
2662
2664template <typename FF_>
2667
2669
2671 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_42";
2672 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2673 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2674 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2675 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2676 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_42_counts;
2677 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_42_inv;
2678 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2679 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2680 ColumnAndShifts::keccakf1600_state_pi_not_02,
2681 ColumnAndShifts::keccakf1600_state_rho_21,
2682 ColumnAndShifts::keccakf1600_state_pi_and_42,
2683 ColumnAndShifts::keccakf1600_tag_u64
2684 };
2685 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2686 ColumnAndShifts::bitwise_acc_ia,
2687 ColumnAndShifts::bitwise_acc_ib,
2688 ColumnAndShifts::bitwise_acc_ic,
2689 ColumnAndShifts::bitwise_tag_a };
2690};
2691
2693template <typename FF_>
2696
2698
2700 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_43";
2701 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2702 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2703 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2704 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2705 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_43_counts;
2706 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_43_inv;
2707 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2708 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2709 ColumnAndShifts::keccakf1600_state_pi_not_03,
2710 ColumnAndShifts::keccakf1600_state_rho_01,
2711 ColumnAndShifts::keccakf1600_state_pi_and_43,
2712 ColumnAndShifts::keccakf1600_tag_u64
2713 };
2714 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2715 ColumnAndShifts::bitwise_acc_ia,
2716 ColumnAndShifts::bitwise_acc_ib,
2717 ColumnAndShifts::bitwise_acc_ic,
2718 ColumnAndShifts::bitwise_tag_a };
2719};
2720
2722template <typename FF_>
2725
2727
2729 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_PI_AND_44";
2730 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2731 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2732 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2733 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2734 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_pi_and_44_counts;
2735 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_pi_and_44_inv;
2736 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2737 ColumnAndShifts::keccakf1600_bitwise_and_op_id,
2738 ColumnAndShifts::keccakf1600_state_pi_not_04,
2739 ColumnAndShifts::keccakf1600_state_rho_31,
2740 ColumnAndShifts::keccakf1600_state_pi_and_44,
2741 ColumnAndShifts::keccakf1600_tag_u64
2742 };
2743 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2744 ColumnAndShifts::bitwise_acc_ia,
2745 ColumnAndShifts::bitwise_acc_ib,
2746 ColumnAndShifts::bitwise_acc_ic,
2747 ColumnAndShifts::bitwise_tag_a };
2748};
2749
2751template <typename FF_>
2754
2756
2758 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_00";
2759 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2760 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2761 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2762 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2763 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_00_counts;
2764 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_00_inv;
2765 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2766 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2767 ColumnAndShifts::keccakf1600_state_theta_00,
2768 ColumnAndShifts::keccakf1600_state_pi_and_00,
2769 ColumnAndShifts::keccakf1600_state_chi_00,
2770 ColumnAndShifts::keccakf1600_tag_u64
2771 };
2772 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2773 ColumnAndShifts::bitwise_acc_ia,
2774 ColumnAndShifts::bitwise_acc_ib,
2775 ColumnAndShifts::bitwise_acc_ic,
2776 ColumnAndShifts::bitwise_tag_a };
2777};
2778
2780template <typename FF_>
2782
2784
2786 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_01";
2787 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2788 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2789 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2790 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2791 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_01_counts;
2792 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_01_inv;
2793 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2794 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2795 ColumnAndShifts::keccakf1600_state_rho_30,
2796 ColumnAndShifts::keccakf1600_state_pi_and_01,
2797 ColumnAndShifts::keccakf1600_state_chi_01,
2798 ColumnAndShifts::keccakf1600_tag_u64
2799 };
2800 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2801 ColumnAndShifts::bitwise_acc_ia,
2802 ColumnAndShifts::bitwise_acc_ib,
2803 ColumnAndShifts::bitwise_acc_ic,
2804 ColumnAndShifts::bitwise_tag_a };
2805};
2806
2808template <typename FF_>
2810
2812
2814 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_02";
2815 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2816 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2817 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2818 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2819 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_02_counts;
2820 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_02_inv;
2821 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2822 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2823 ColumnAndShifts::keccakf1600_state_rho_10,
2824 ColumnAndShifts::keccakf1600_state_pi_and_02,
2825 ColumnAndShifts::keccakf1600_state_chi_02,
2826 ColumnAndShifts::keccakf1600_tag_u64
2827 };
2828 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2829 ColumnAndShifts::bitwise_acc_ia,
2830 ColumnAndShifts::bitwise_acc_ib,
2831 ColumnAndShifts::bitwise_acc_ic,
2832 ColumnAndShifts::bitwise_tag_a };
2833};
2834
2836template <typename FF_>
2838
2840
2842 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_03";
2843 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2844 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2845 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2846 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2847 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_03_counts;
2848 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_03_inv;
2849 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2850 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2851 ColumnAndShifts::keccakf1600_state_rho_40,
2852 ColumnAndShifts::keccakf1600_state_pi_and_03,
2853 ColumnAndShifts::keccakf1600_state_chi_03,
2854 ColumnAndShifts::keccakf1600_tag_u64
2855 };
2856 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2857 ColumnAndShifts::bitwise_acc_ia,
2858 ColumnAndShifts::bitwise_acc_ib,
2859 ColumnAndShifts::bitwise_acc_ic,
2860 ColumnAndShifts::bitwise_tag_a };
2861};
2862
2864template <typename FF_>
2866
2868
2870 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_04";
2871 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2872 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2873 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2874 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2875 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_04_counts;
2876 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_04_inv;
2877 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2878 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2879 ColumnAndShifts::keccakf1600_state_rho_20,
2880 ColumnAndShifts::keccakf1600_state_pi_and_04,
2881 ColumnAndShifts::keccakf1600_state_chi_04,
2882 ColumnAndShifts::keccakf1600_tag_u64
2883 };
2884 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2885 ColumnAndShifts::bitwise_acc_ia,
2886 ColumnAndShifts::bitwise_acc_ib,
2887 ColumnAndShifts::bitwise_acc_ic,
2888 ColumnAndShifts::bitwise_tag_a };
2889};
2890
2892template <typename FF_>
2894
2896
2898 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_10";
2899 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2900 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2901 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2902 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2903 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_10_counts;
2904 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_10_inv;
2905 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2906 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2907 ColumnAndShifts::keccakf1600_state_rho_11,
2908 ColumnAndShifts::keccakf1600_state_pi_and_10,
2909 ColumnAndShifts::keccakf1600_state_chi_10,
2910 ColumnAndShifts::keccakf1600_tag_u64
2911 };
2912 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2913 ColumnAndShifts::bitwise_acc_ia,
2914 ColumnAndShifts::bitwise_acc_ib,
2915 ColumnAndShifts::bitwise_acc_ic,
2916 ColumnAndShifts::bitwise_tag_a };
2917};
2918
2920template <typename FF_>
2922
2924
2926 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_11";
2927 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2928 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2929 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2930 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2931 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_11_counts;
2932 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_11_inv;
2933 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2934 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2935 ColumnAndShifts::keccakf1600_state_rho_41,
2936 ColumnAndShifts::keccakf1600_state_pi_and_11,
2937 ColumnAndShifts::keccakf1600_state_chi_11,
2938 ColumnAndShifts::keccakf1600_tag_u64
2939 };
2940 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2941 ColumnAndShifts::bitwise_acc_ia,
2942 ColumnAndShifts::bitwise_acc_ib,
2943 ColumnAndShifts::bitwise_acc_ic,
2944 ColumnAndShifts::bitwise_tag_a };
2945};
2946
2948template <typename FF_>
2950
2952
2954 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_12";
2955 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2956 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2957 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2958 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2959 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_12_counts;
2960 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_12_inv;
2961 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2962 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2963 ColumnAndShifts::keccakf1600_state_rho_21,
2964 ColumnAndShifts::keccakf1600_state_pi_and_12,
2965 ColumnAndShifts::keccakf1600_state_chi_12,
2966 ColumnAndShifts::keccakf1600_tag_u64
2967 };
2968 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2969 ColumnAndShifts::bitwise_acc_ia,
2970 ColumnAndShifts::bitwise_acc_ib,
2971 ColumnAndShifts::bitwise_acc_ic,
2972 ColumnAndShifts::bitwise_tag_a };
2973};
2974
2976template <typename FF_>
2978
2980
2982 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_13";
2983 static constexpr std::string_view RELATION_NAME = "keccakf1600";
2984 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
2985 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
2986 static constexpr Column DST_SELECTOR = Column::bitwise_start;
2987 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_13_counts;
2988 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_13_inv;
2989 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
2990 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
2991 ColumnAndShifts::keccakf1600_state_rho_01,
2992 ColumnAndShifts::keccakf1600_state_pi_and_13,
2993 ColumnAndShifts::keccakf1600_state_chi_13,
2994 ColumnAndShifts::keccakf1600_tag_u64
2995 };
2996 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
2997 ColumnAndShifts::bitwise_acc_ia,
2998 ColumnAndShifts::bitwise_acc_ib,
2999 ColumnAndShifts::bitwise_acc_ic,
3000 ColumnAndShifts::bitwise_tag_a };
3001};
3002
3004template <typename FF_>
3006
3008
3010 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_14";
3011 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3012 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3013 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3014 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3015 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_14_counts;
3016 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_14_inv;
3017 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3018 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3019 ColumnAndShifts::keccakf1600_state_rho_31,
3020 ColumnAndShifts::keccakf1600_state_pi_and_14,
3021 ColumnAndShifts::keccakf1600_state_chi_14,
3022 ColumnAndShifts::keccakf1600_tag_u64
3023 };
3024 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3025 ColumnAndShifts::bitwise_acc_ia,
3026 ColumnAndShifts::bitwise_acc_ib,
3027 ColumnAndShifts::bitwise_acc_ic,
3028 ColumnAndShifts::bitwise_tag_a };
3029};
3030
3032template <typename FF_>
3034
3036
3038 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_20";
3039 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3040 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3041 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3042 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3043 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_20_counts;
3044 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_20_inv;
3045 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3046 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3047 ColumnAndShifts::keccakf1600_state_rho_22,
3048 ColumnAndShifts::keccakf1600_state_pi_and_20,
3049 ColumnAndShifts::keccakf1600_state_chi_20,
3050 ColumnAndShifts::keccakf1600_tag_u64
3051 };
3052 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3053 ColumnAndShifts::bitwise_acc_ia,
3054 ColumnAndShifts::bitwise_acc_ib,
3055 ColumnAndShifts::bitwise_acc_ic,
3056 ColumnAndShifts::bitwise_tag_a };
3057};
3058
3060template <typename FF_>
3062
3064
3066 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_21";
3067 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3068 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3069 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3070 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3071 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_21_counts;
3072 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_21_inv;
3073 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3074 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3075 ColumnAndShifts::keccakf1600_state_rho_02,
3076 ColumnAndShifts::keccakf1600_state_pi_and_21,
3077 ColumnAndShifts::keccakf1600_state_chi_21,
3078 ColumnAndShifts::keccakf1600_tag_u64
3079 };
3080 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3081 ColumnAndShifts::bitwise_acc_ia,
3082 ColumnAndShifts::bitwise_acc_ib,
3083 ColumnAndShifts::bitwise_acc_ic,
3084 ColumnAndShifts::bitwise_tag_a };
3085};
3086
3088template <typename FF_>
3090
3092
3094 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_22";
3095 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3096 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3097 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3098 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3099 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_22_counts;
3100 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_22_inv;
3101 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3102 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3103 ColumnAndShifts::keccakf1600_state_rho_32,
3104 ColumnAndShifts::keccakf1600_state_pi_and_22,
3105 ColumnAndShifts::keccakf1600_state_chi_22,
3106 ColumnAndShifts::keccakf1600_tag_u64
3107 };
3108 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3109 ColumnAndShifts::bitwise_acc_ia,
3110 ColumnAndShifts::bitwise_acc_ib,
3111 ColumnAndShifts::bitwise_acc_ic,
3112 ColumnAndShifts::bitwise_tag_a };
3113};
3114
3116template <typename FF_>
3118
3120
3122 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_23";
3123 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3124 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3125 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3126 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3127 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_23_counts;
3128 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_23_inv;
3129 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3130 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3131 ColumnAndShifts::keccakf1600_state_rho_12,
3132 ColumnAndShifts::keccakf1600_state_pi_and_23,
3133 ColumnAndShifts::keccakf1600_state_chi_23,
3134 ColumnAndShifts::keccakf1600_tag_u64
3135 };
3136 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3137 ColumnAndShifts::bitwise_acc_ia,
3138 ColumnAndShifts::bitwise_acc_ib,
3139 ColumnAndShifts::bitwise_acc_ic,
3140 ColumnAndShifts::bitwise_tag_a };
3141};
3142
3144template <typename FF_>
3146
3148
3150 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_24";
3151 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3152 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3153 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3154 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3155 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_24_counts;
3156 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_24_inv;
3157 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3158 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3159 ColumnAndShifts::keccakf1600_state_rho_42,
3160 ColumnAndShifts::keccakf1600_state_pi_and_24,
3161 ColumnAndShifts::keccakf1600_state_chi_24,
3162 ColumnAndShifts::keccakf1600_tag_u64
3163 };
3164 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3165 ColumnAndShifts::bitwise_acc_ia,
3166 ColumnAndShifts::bitwise_acc_ib,
3167 ColumnAndShifts::bitwise_acc_ic,
3168 ColumnAndShifts::bitwise_tag_a };
3169};
3170
3172template <typename FF_>
3174
3176
3178 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_30";
3179 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3180 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3181 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3182 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3183 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_30_counts;
3184 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_30_inv;
3185 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3186 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3187 ColumnAndShifts::keccakf1600_state_rho_33,
3188 ColumnAndShifts::keccakf1600_state_pi_and_30,
3189 ColumnAndShifts::keccakf1600_state_chi_30,
3190 ColumnAndShifts::keccakf1600_tag_u64
3191 };
3192 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3193 ColumnAndShifts::bitwise_acc_ia,
3194 ColumnAndShifts::bitwise_acc_ib,
3195 ColumnAndShifts::bitwise_acc_ic,
3196 ColumnAndShifts::bitwise_tag_a };
3197};
3198
3200template <typename FF_>
3202
3204
3206 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_31";
3207 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3208 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3209 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3210 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3211 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_31_counts;
3212 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_31_inv;
3213 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3214 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3215 ColumnAndShifts::keccakf1600_state_rho_13,
3216 ColumnAndShifts::keccakf1600_state_pi_and_31,
3217 ColumnAndShifts::keccakf1600_state_chi_31,
3218 ColumnAndShifts::keccakf1600_tag_u64
3219 };
3220 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3221 ColumnAndShifts::bitwise_acc_ia,
3222 ColumnAndShifts::bitwise_acc_ib,
3223 ColumnAndShifts::bitwise_acc_ic,
3224 ColumnAndShifts::bitwise_tag_a };
3225};
3226
3228template <typename FF_>
3230
3232
3234 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_32";
3235 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3236 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3237 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3238 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3239 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_32_counts;
3240 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_32_inv;
3241 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3242 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3243 ColumnAndShifts::keccakf1600_state_rho_43,
3244 ColumnAndShifts::keccakf1600_state_pi_and_32,
3245 ColumnAndShifts::keccakf1600_state_chi_32,
3246 ColumnAndShifts::keccakf1600_tag_u64
3247 };
3248 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3249 ColumnAndShifts::bitwise_acc_ia,
3250 ColumnAndShifts::bitwise_acc_ib,
3251 ColumnAndShifts::bitwise_acc_ic,
3252 ColumnAndShifts::bitwise_tag_a };
3253};
3254
3256template <typename FF_>
3258
3260
3262 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_33";
3263 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3264 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3265 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3266 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3267 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_33_counts;
3268 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_33_inv;
3269 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3270 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3271 ColumnAndShifts::keccakf1600_state_rho_23,
3272 ColumnAndShifts::keccakf1600_state_pi_and_33,
3273 ColumnAndShifts::keccakf1600_state_chi_33,
3274 ColumnAndShifts::keccakf1600_tag_u64
3275 };
3276 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3277 ColumnAndShifts::bitwise_acc_ia,
3278 ColumnAndShifts::bitwise_acc_ib,
3279 ColumnAndShifts::bitwise_acc_ic,
3280 ColumnAndShifts::bitwise_tag_a };
3281};
3282
3284template <typename FF_>
3286
3288
3290 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_34";
3291 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3292 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3293 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3294 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3295 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_34_counts;
3296 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_34_inv;
3297 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3298 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3299 ColumnAndShifts::keccakf1600_state_rho_03,
3300 ColumnAndShifts::keccakf1600_state_pi_and_34,
3301 ColumnAndShifts::keccakf1600_state_chi_34,
3302 ColumnAndShifts::keccakf1600_tag_u64
3303 };
3304 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3305 ColumnAndShifts::bitwise_acc_ia,
3306 ColumnAndShifts::bitwise_acc_ib,
3307 ColumnAndShifts::bitwise_acc_ic,
3308 ColumnAndShifts::bitwise_tag_a };
3309};
3310
3312template <typename FF_>
3314
3316
3318 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_40";
3319 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3320 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3321 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3322 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3323 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_40_counts;
3324 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_40_inv;
3325 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3326 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3327 ColumnAndShifts::keccakf1600_state_rho_44,
3328 ColumnAndShifts::keccakf1600_state_pi_and_40,
3329 ColumnAndShifts::keccakf1600_state_chi_40,
3330 ColumnAndShifts::keccakf1600_tag_u64
3331 };
3332 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3333 ColumnAndShifts::bitwise_acc_ia,
3334 ColumnAndShifts::bitwise_acc_ib,
3335 ColumnAndShifts::bitwise_acc_ic,
3336 ColumnAndShifts::bitwise_tag_a };
3337};
3338
3340template <typename FF_>
3342
3344
3346 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_41";
3347 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3348 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3349 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3350 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3351 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_41_counts;
3352 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_41_inv;
3353 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3354 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3355 ColumnAndShifts::keccakf1600_state_rho_24,
3356 ColumnAndShifts::keccakf1600_state_pi_and_41,
3357 ColumnAndShifts::keccakf1600_state_chi_41,
3358 ColumnAndShifts::keccakf1600_tag_u64
3359 };
3360 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3361 ColumnAndShifts::bitwise_acc_ia,
3362 ColumnAndShifts::bitwise_acc_ib,
3363 ColumnAndShifts::bitwise_acc_ic,
3364 ColumnAndShifts::bitwise_tag_a };
3365};
3366
3368template <typename FF_>
3370
3372
3374 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_42";
3375 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3376 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3377 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3378 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3379 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_42_counts;
3380 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_42_inv;
3381 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3382 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3383 ColumnAndShifts::keccakf1600_state_rho_04,
3384 ColumnAndShifts::keccakf1600_state_pi_and_42,
3385 ColumnAndShifts::keccakf1600_state_chi_42,
3386 ColumnAndShifts::keccakf1600_tag_u64
3387 };
3388 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3389 ColumnAndShifts::bitwise_acc_ia,
3390 ColumnAndShifts::bitwise_acc_ib,
3391 ColumnAndShifts::bitwise_acc_ic,
3392 ColumnAndShifts::bitwise_tag_a };
3393};
3394
3396template <typename FF_>
3398
3400
3402 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_43";
3403 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3404 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3405 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3406 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3407 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_43_counts;
3408 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_43_inv;
3409 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3410 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3411 ColumnAndShifts::keccakf1600_state_rho_34,
3412 ColumnAndShifts::keccakf1600_state_pi_and_43,
3413 ColumnAndShifts::keccakf1600_state_chi_43,
3414 ColumnAndShifts::keccakf1600_tag_u64
3415 };
3416 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3417 ColumnAndShifts::bitwise_acc_ia,
3418 ColumnAndShifts::bitwise_acc_ib,
3419 ColumnAndShifts::bitwise_acc_ic,
3420 ColumnAndShifts::bitwise_tag_a };
3421};
3422
3424template <typename FF_>
3426
3428
3430 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_CHI_44";
3431 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3432 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3433 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3434 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3435 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_chi_44_counts;
3436 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_chi_44_inv;
3437 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3438 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3439 ColumnAndShifts::keccakf1600_state_rho_14,
3440 ColumnAndShifts::keccakf1600_state_pi_and_44,
3441 ColumnAndShifts::keccakf1600_state_chi_44,
3442 ColumnAndShifts::keccakf1600_tag_u64
3443 };
3444 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3445 ColumnAndShifts::bitwise_acc_ia,
3446 ColumnAndShifts::bitwise_acc_ib,
3447 ColumnAndShifts::bitwise_acc_ic,
3448 ColumnAndShifts::bitwise_tag_a };
3449};
3450
3452template <typename FF_>
3454
3456
3458 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_ROUND_CST";
3459 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3460 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
3461 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3462 static constexpr Column DST_SELECTOR = Column::precomputed_sel_keccak;
3463 static constexpr Column COUNTS = Column::lookup_keccakf1600_round_cst_counts;
3464 static constexpr Column INVERSES = Column::lookup_keccakf1600_round_cst_inv;
3465 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3466 ColumnAndShifts::keccakf1600_round, ColumnAndShifts::keccakf1600_round_cst
3467 };
3468 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
3469 ColumnAndShifts::precomputed_clk, ColumnAndShifts::precomputed_keccak_round_constant
3470 };
3471};
3472
3474template <typename FF_>
3476
3478
3480 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_STATE_IOTA_00";
3481 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3482 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
3483 static constexpr Column SRC_SELECTOR = Column::keccakf1600_sel_no_error;
3484 static constexpr Column DST_SELECTOR = Column::bitwise_start;
3485 static constexpr Column COUNTS = Column::lookup_keccakf1600_state_iota_00_counts;
3486 static constexpr Column INVERSES = Column::lookup_keccakf1600_state_iota_00_inv;
3487 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3488 ColumnAndShifts::keccakf1600_bitwise_xor_op_id,
3489 ColumnAndShifts::keccakf1600_state_chi_00,
3490 ColumnAndShifts::keccakf1600_round_cst,
3491 ColumnAndShifts::keccakf1600_state_iota_00,
3492 ColumnAndShifts::keccakf1600_tag_u64
3493 };
3494 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = { ColumnAndShifts::bitwise_op_id,
3495 ColumnAndShifts::bitwise_acc_ia,
3496 ColumnAndShifts::bitwise_acc_ib,
3497 ColumnAndShifts::bitwise_acc_ic,
3498 ColumnAndShifts::bitwise_tag_a };
3499};
3500
3502template <typename FF_>
3504
3506
3508 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_SRC_ABS_DIFF_POSITIVE";
3509 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3510 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
3511 static constexpr Column SRC_SELECTOR = Column::keccakf1600_start;
3512 static constexpr Column DST_SELECTOR = Column::range_check_sel;
3513 static constexpr Column COUNTS = Column::lookup_keccakf1600_src_abs_diff_positive_counts;
3514 static constexpr Column INVERSES = Column::lookup_keccakf1600_src_abs_diff_positive_inv;
3515 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3516 ColumnAndShifts::keccakf1600_src_abs_diff, ColumnAndShifts::keccakf1600_thirty_two
3517 };
3518 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
3519 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
3520 };
3521};
3522
3525template <typename FF_>
3528
3530
3532 static constexpr std::string_view NAME = "LOOKUP_KECCAKF1600_DST_ABS_DIFF_POSITIVE";
3533 static constexpr std::string_view RELATION_NAME = "keccakf1600";
3534 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
3535 static constexpr Column SRC_SELECTOR = Column::keccakf1600_start;
3536 static constexpr Column DST_SELECTOR = Column::range_check_sel;
3537 static constexpr Column COUNTS = Column::lookup_keccakf1600_dst_abs_diff_positive_counts;
3538 static constexpr Column INVERSES = Column::lookup_keccakf1600_dst_abs_diff_positive_inv;
3539 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
3540 ColumnAndShifts::keccakf1600_dst_abs_diff, ColumnAndShifts::keccakf1600_thirty_two
3541 };
3542 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
3543 ColumnAndShifts::range_check_value, ColumnAndShifts::range_check_rng_chk_bits
3544 };
3545};
3546
3549template <typename FF_>
3552
3553} // namespace bb::avm2
This file contains the template for the generic lookup that can be specialized to enforce various loo...
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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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