Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
lookups_bitwise.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_BITWISE_BITW_TAG_BYTE_LENGTH";
18 static constexpr std::string_view RELATION_NAME = "bitwise";
19 static constexpr size_t LOOKUP_TUPLE_SIZE = 2;
20 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_compute;
21 static constexpr Column DST_SELECTOR = Column::precomputed_sel_tag_parameters;
22 static constexpr Column COUNTS = Column::lookup_bitwise_bitw_tag_byte_length_counts;
23 static constexpr Column INVERSES = Column::lookup_bitwise_bitw_tag_byte_length_inv;
24 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
25 ColumnAndShifts::bitwise_tag_a, ColumnAndShifts::bitwise_tag_byte_len
26 };
27 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
28 ColumnAndShifts::precomputed_idx, ColumnAndShifts::precomputed_tag_byte_length
29 };
30};
31
33template <typename FF_>
36
38
40 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_0";
41 static constexpr std::string_view RELATION_NAME = "bitwise";
42 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
43 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_compute;
44 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
45 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_0_counts;
46 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_0_inv;
47 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
48 ColumnAndShifts::bitwise_ia_byte_0_,
49 ColumnAndShifts::bitwise_ib_byte_0_,
50 ColumnAndShifts::bitwise_output_and_0_,
51 ColumnAndShifts::bitwise_output_or_0_,
52 ColumnAndShifts::bitwise_output_xor_0_
53 };
54 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
55 ColumnAndShifts::precomputed_bitwise_input_a,
56 ColumnAndShifts::precomputed_bitwise_input_b,
57 ColumnAndShifts::precomputed_bitwise_output_and,
58 ColumnAndShifts::precomputed_bitwise_output_or,
59 ColumnAndShifts::precomputed_bitwise_output_xor
60 };
61};
62
64template <typename FF_>
66
68
70 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_1";
71 static constexpr std::string_view RELATION_NAME = "bitwise";
72 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
73 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u16;
74 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
75 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_1_counts;
76 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_1_inv;
77 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
78 ColumnAndShifts::bitwise_ia_byte_1_,
79 ColumnAndShifts::bitwise_ib_byte_1_,
80 ColumnAndShifts::bitwise_output_and_1_,
81 ColumnAndShifts::bitwise_output_or_1_,
82 ColumnAndShifts::bitwise_output_xor_1_
83 };
84 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
85 ColumnAndShifts::precomputed_bitwise_input_a,
86 ColumnAndShifts::precomputed_bitwise_input_b,
87 ColumnAndShifts::precomputed_bitwise_output_and,
88 ColumnAndShifts::precomputed_bitwise_output_or,
89 ColumnAndShifts::precomputed_bitwise_output_xor
90 };
91};
92
94template <typename FF_>
96
98
100 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_2";
101 static constexpr std::string_view RELATION_NAME = "bitwise";
102 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
103 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u32;
104 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
105 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_2_counts;
106 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_2_inv;
107 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
108 ColumnAndShifts::bitwise_ia_byte_2_,
109 ColumnAndShifts::bitwise_ib_byte_2_,
110 ColumnAndShifts::bitwise_output_and_2_,
111 ColumnAndShifts::bitwise_output_or_2_,
112 ColumnAndShifts::bitwise_output_xor_2_
113 };
114 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
115 ColumnAndShifts::precomputed_bitwise_input_a,
116 ColumnAndShifts::precomputed_bitwise_input_b,
117 ColumnAndShifts::precomputed_bitwise_output_and,
118 ColumnAndShifts::precomputed_bitwise_output_or,
119 ColumnAndShifts::precomputed_bitwise_output_xor
120 };
121};
122
124template <typename FF_>
126
128
130 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_3";
131 static constexpr std::string_view RELATION_NAME = "bitwise";
132 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
133 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u32;
134 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
135 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_3_counts;
136 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_3_inv;
137 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
138 ColumnAndShifts::bitwise_ia_byte_3_,
139 ColumnAndShifts::bitwise_ib_byte_3_,
140 ColumnAndShifts::bitwise_output_and_3_,
141 ColumnAndShifts::bitwise_output_or_3_,
142 ColumnAndShifts::bitwise_output_xor_3_
143 };
144 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
145 ColumnAndShifts::precomputed_bitwise_input_a,
146 ColumnAndShifts::precomputed_bitwise_input_b,
147 ColumnAndShifts::precomputed_bitwise_output_and,
148 ColumnAndShifts::precomputed_bitwise_output_or,
149 ColumnAndShifts::precomputed_bitwise_output_xor
150 };
151};
152
154template <typename FF_>
156
158
160 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_4";
161 static constexpr std::string_view RELATION_NAME = "bitwise";
162 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
163 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u64;
164 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
165 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_4_counts;
166 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_4_inv;
167 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
168 ColumnAndShifts::bitwise_ia_byte_4_,
169 ColumnAndShifts::bitwise_ib_byte_4_,
170 ColumnAndShifts::bitwise_output_and_4_,
171 ColumnAndShifts::bitwise_output_or_4_,
172 ColumnAndShifts::bitwise_output_xor_4_
173 };
174 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
175 ColumnAndShifts::precomputed_bitwise_input_a,
176 ColumnAndShifts::precomputed_bitwise_input_b,
177 ColumnAndShifts::precomputed_bitwise_output_and,
178 ColumnAndShifts::precomputed_bitwise_output_or,
179 ColumnAndShifts::precomputed_bitwise_output_xor
180 };
181};
182
184template <typename FF_>
186
188
190 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_5";
191 static constexpr std::string_view RELATION_NAME = "bitwise";
192 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
193 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u64;
194 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
195 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_5_counts;
196 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_5_inv;
197 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
198 ColumnAndShifts::bitwise_ia_byte_5_,
199 ColumnAndShifts::bitwise_ib_byte_5_,
200 ColumnAndShifts::bitwise_output_and_5_,
201 ColumnAndShifts::bitwise_output_or_5_,
202 ColumnAndShifts::bitwise_output_xor_5_
203 };
204 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
205 ColumnAndShifts::precomputed_bitwise_input_a,
206 ColumnAndShifts::precomputed_bitwise_input_b,
207 ColumnAndShifts::precomputed_bitwise_output_and,
208 ColumnAndShifts::precomputed_bitwise_output_or,
209 ColumnAndShifts::precomputed_bitwise_output_xor
210 };
211};
212
214template <typename FF_>
216
218
220 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_6";
221 static constexpr std::string_view RELATION_NAME = "bitwise";
222 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
223 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u64;
224 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
225 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_6_counts;
226 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_6_inv;
227 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
228 ColumnAndShifts::bitwise_ia_byte_6_,
229 ColumnAndShifts::bitwise_ib_byte_6_,
230 ColumnAndShifts::bitwise_output_and_6_,
231 ColumnAndShifts::bitwise_output_or_6_,
232 ColumnAndShifts::bitwise_output_xor_6_
233 };
234 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
235 ColumnAndShifts::precomputed_bitwise_input_a,
236 ColumnAndShifts::precomputed_bitwise_input_b,
237 ColumnAndShifts::precomputed_bitwise_output_and,
238 ColumnAndShifts::precomputed_bitwise_output_or,
239 ColumnAndShifts::precomputed_bitwise_output_xor
240 };
241};
242
244template <typename FF_>
246
248
250 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_7";
251 static constexpr std::string_view RELATION_NAME = "bitwise";
252 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
253 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u64;
254 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
255 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_7_counts;
256 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_7_inv;
257 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
258 ColumnAndShifts::bitwise_ia_byte_7_,
259 ColumnAndShifts::bitwise_ib_byte_7_,
260 ColumnAndShifts::bitwise_output_and_7_,
261 ColumnAndShifts::bitwise_output_or_7_,
262 ColumnAndShifts::bitwise_output_xor_7_
263 };
264 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
265 ColumnAndShifts::precomputed_bitwise_input_a,
266 ColumnAndShifts::precomputed_bitwise_input_b,
267 ColumnAndShifts::precomputed_bitwise_output_and,
268 ColumnAndShifts::precomputed_bitwise_output_or,
269 ColumnAndShifts::precomputed_bitwise_output_xor
270 };
271};
272
274template <typename FF_>
276
278
280 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_8";
281 static constexpr std::string_view RELATION_NAME = "bitwise";
282 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
283 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u128;
284 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
285 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_8_counts;
286 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_8_inv;
287 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
288 ColumnAndShifts::bitwise_ia_byte_8_,
289 ColumnAndShifts::bitwise_ib_byte_8_,
290 ColumnAndShifts::bitwise_output_and_8_,
291 ColumnAndShifts::bitwise_output_or_8_,
292 ColumnAndShifts::bitwise_output_xor_8_
293 };
294 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
295 ColumnAndShifts::precomputed_bitwise_input_a,
296 ColumnAndShifts::precomputed_bitwise_input_b,
297 ColumnAndShifts::precomputed_bitwise_output_and,
298 ColumnAndShifts::precomputed_bitwise_output_or,
299 ColumnAndShifts::precomputed_bitwise_output_xor
300 };
301};
302
304template <typename FF_>
306
308
310 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_9";
311 static constexpr std::string_view RELATION_NAME = "bitwise";
312 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
313 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u128;
314 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
315 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_9_counts;
316 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_9_inv;
317 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
318 ColumnAndShifts::bitwise_ia_byte_9_,
319 ColumnAndShifts::bitwise_ib_byte_9_,
320 ColumnAndShifts::bitwise_output_and_9_,
321 ColumnAndShifts::bitwise_output_or_9_,
322 ColumnAndShifts::bitwise_output_xor_9_
323 };
324 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
325 ColumnAndShifts::precomputed_bitwise_input_a,
326 ColumnAndShifts::precomputed_bitwise_input_b,
327 ColumnAndShifts::precomputed_bitwise_output_and,
328 ColumnAndShifts::precomputed_bitwise_output_or,
329 ColumnAndShifts::precomputed_bitwise_output_xor
330 };
331};
332
334template <typename FF_>
336
338
340 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_10";
341 static constexpr std::string_view RELATION_NAME = "bitwise";
342 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
343 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u128;
344 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
345 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_10_counts;
346 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_10_inv;
347 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
348 ColumnAndShifts::bitwise_ia_byte_10_,
349 ColumnAndShifts::bitwise_ib_byte_10_,
350 ColumnAndShifts::bitwise_output_and_10_,
351 ColumnAndShifts::bitwise_output_or_10_,
352 ColumnAndShifts::bitwise_output_xor_10_
353 };
354 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
355 ColumnAndShifts::precomputed_bitwise_input_a,
356 ColumnAndShifts::precomputed_bitwise_input_b,
357 ColumnAndShifts::precomputed_bitwise_output_and,
358 ColumnAndShifts::precomputed_bitwise_output_or,
359 ColumnAndShifts::precomputed_bitwise_output_xor
360 };
361};
362
364template <typename FF_>
367
369
371 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_11";
372 static constexpr std::string_view RELATION_NAME = "bitwise";
373 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
374 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u128;
375 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
376 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_11_counts;
377 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_11_inv;
378 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
379 ColumnAndShifts::bitwise_ia_byte_11_,
380 ColumnAndShifts::bitwise_ib_byte_11_,
381 ColumnAndShifts::bitwise_output_and_11_,
382 ColumnAndShifts::bitwise_output_or_11_,
383 ColumnAndShifts::bitwise_output_xor_11_
384 };
385 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
386 ColumnAndShifts::precomputed_bitwise_input_a,
387 ColumnAndShifts::precomputed_bitwise_input_b,
388 ColumnAndShifts::precomputed_bitwise_output_and,
389 ColumnAndShifts::precomputed_bitwise_output_or,
390 ColumnAndShifts::precomputed_bitwise_output_xor
391 };
392};
393
395template <typename FF_>
398
400
402 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_12";
403 static constexpr std::string_view RELATION_NAME = "bitwise";
404 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
405 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u128;
406 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
407 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_12_counts;
408 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_12_inv;
409 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
410 ColumnAndShifts::bitwise_ia_byte_12_,
411 ColumnAndShifts::bitwise_ib_byte_12_,
412 ColumnAndShifts::bitwise_output_and_12_,
413 ColumnAndShifts::bitwise_output_or_12_,
414 ColumnAndShifts::bitwise_output_xor_12_
415 };
416 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
417 ColumnAndShifts::precomputed_bitwise_input_a,
418 ColumnAndShifts::precomputed_bitwise_input_b,
419 ColumnAndShifts::precomputed_bitwise_output_and,
420 ColumnAndShifts::precomputed_bitwise_output_or,
421 ColumnAndShifts::precomputed_bitwise_output_xor
422 };
423};
424
426template <typename FF_>
429
431
433 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_13";
434 static constexpr std::string_view RELATION_NAME = "bitwise";
435 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
436 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u128;
437 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
438 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_13_counts;
439 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_13_inv;
440 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
441 ColumnAndShifts::bitwise_ia_byte_13_,
442 ColumnAndShifts::bitwise_ib_byte_13_,
443 ColumnAndShifts::bitwise_output_and_13_,
444 ColumnAndShifts::bitwise_output_or_13_,
445 ColumnAndShifts::bitwise_output_xor_13_
446 };
447 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
448 ColumnAndShifts::precomputed_bitwise_input_a,
449 ColumnAndShifts::precomputed_bitwise_input_b,
450 ColumnAndShifts::precomputed_bitwise_output_and,
451 ColumnAndShifts::precomputed_bitwise_output_or,
452 ColumnAndShifts::precomputed_bitwise_output_xor
453 };
454};
455
457template <typename FF_>
460
462
464 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_14";
465 static constexpr std::string_view RELATION_NAME = "bitwise";
466 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
467 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u128;
468 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
469 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_14_counts;
470 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_14_inv;
471 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
472 ColumnAndShifts::bitwise_ia_byte_14_,
473 ColumnAndShifts::bitwise_ib_byte_14_,
474 ColumnAndShifts::bitwise_output_and_14_,
475 ColumnAndShifts::bitwise_output_or_14_,
476 ColumnAndShifts::bitwise_output_xor_14_
477 };
478 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
479 ColumnAndShifts::precomputed_bitwise_input_a,
480 ColumnAndShifts::precomputed_bitwise_input_b,
481 ColumnAndShifts::precomputed_bitwise_output_and,
482 ColumnAndShifts::precomputed_bitwise_output_or,
483 ColumnAndShifts::precomputed_bitwise_output_xor
484 };
485};
486
488template <typename FF_>
491
493
495 static constexpr std::string_view NAME = "LOOKUP_BITWISE_BYTE_OPERATIONS_15";
496 static constexpr std::string_view RELATION_NAME = "bitwise";
497 static constexpr size_t LOOKUP_TUPLE_SIZE = 5;
498 static constexpr Column SRC_SELECTOR = Column::bitwise_sel_u128;
499 static constexpr Column DST_SELECTOR = Column::precomputed_sel_bitwise;
500 static constexpr Column COUNTS = Column::lookup_bitwise_byte_operations_15_counts;
501 static constexpr Column INVERSES = Column::lookup_bitwise_byte_operations_15_inv;
502 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> SRC_COLUMNS = {
503 ColumnAndShifts::bitwise_ia_byte_15_,
504 ColumnAndShifts::bitwise_ib_byte_15_,
505 ColumnAndShifts::bitwise_output_and_15_,
506 ColumnAndShifts::bitwise_output_or_15_,
507 ColumnAndShifts::bitwise_output_xor_15_
508 };
509 static constexpr std::array<ColumnAndShifts, LOOKUP_TUPLE_SIZE> DST_COLUMNS = {
510 ColumnAndShifts::precomputed_bitwise_input_a,
511 ColumnAndShifts::precomputed_bitwise_input_b,
512 ColumnAndShifts::precomputed_bitwise_output_and,
513 ColumnAndShifts::precomputed_bitwise_output_or,
514 ColumnAndShifts::precomputed_bitwise_output_xor
515 };
516};
517
519template <typename FF_>
522
523} // namespace bb::avm2
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > DST_COLUMNS
static constexpr std::array< ColumnAndShifts, LOOKUP_TUPLE_SIZE > SRC_COLUMNS
Settings to be passed ot GenericLookupRelationImpl.