31 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
32 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::precomputed_first_row))) *
33 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_sel))) *
34 static_cast<View
>(in.get(C::keccak_memory_sel_shift));
38 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
39 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_start_read)) *
40 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_start_read)));
44 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
45 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_start_write)) *
46 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_start_write)));
50 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
51 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_start_read)) +
52 static_cast<View
>(in.get(C::keccak_memory_start_write))) *
53 (
static_cast<View
>(in.get(C::keccak_memory_ctr)) -
FF(1));
57 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
59 static_cast<View
>(in.get(C::keccak_memory_start_read)) *
static_cast<View
>(in.get(C::keccak_memory_rw));
63 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
64 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_start_write)) *
65 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_rw)));
69 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
70 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_ctr)) *
71 ((
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_sel))) *
72 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_ctr_inv))) +
73 static_cast<View
>(in.get(C::keccak_memory_ctr_inv))) -
74 static_cast<View
>(in.get(C::keccak_memory_sel)));
78 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
79 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_ctr_end)) *
80 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_ctr_end)));
84 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
85 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_sel)) *
86 (((
CView(constants_AVM_KECCAKF1600_STATE_SIZE) -
static_cast<View
>(in.get(C::keccak_memory_ctr))) *
87 (
static_cast<View
>(in.get(C::keccak_memory_ctr_end)) *
88 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_state_size_min_ctr_inv))) +
89 static_cast<View
>(in.get(C::keccak_memory_state_size_min_ctr_inv))) +
90 static_cast<View
>(in.get(C::keccak_memory_ctr_end))) -
95 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
96 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_last)) -
97 (
FF(1) - (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_ctr_end))) *
98 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_single_tag_error)))));
102 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
103 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_last)) *
104 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_sel)));
108 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
109 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_sel_shift)) *
110 ((
static_cast<View
>(in.get(C::keccak_memory_start_read_shift)) +
111 static_cast<View
>(in.get(C::keccak_memory_start_write_shift))) -
112 CView(keccak_memory_LATCH_CONDITION));
116 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
118 static_cast<View
>(in.get(C::keccak_memory_sel)) * (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
119 ((
static_cast<View
>(in.get(C::keccak_memory_ctr_shift)) -
static_cast<View
>(in.get(C::keccak_memory_ctr))) -
124 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
125 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_single_tag_error)) *
126 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_single_tag_error)));
130 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
131 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_rw)) *
132 static_cast<View
>(in.get(C::keccak_memory_single_tag_error));
136 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
137 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_last)) *
138 (
static_cast<View
>(in.get(C::keccak_memory_tag_error)) -
139 static_cast<View
>(in.get(C::keccak_memory_single_tag_error)));
143 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
144 auto tmp = (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
145 (
static_cast<View
>(in.get(C::keccak_memory_tag_error)) -
146 static_cast<View
>(in.get(C::keccak_memory_tag_error_shift)));
150 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
151 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_sel)) * (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
152 ((
static_cast<View
>(in.get(C::keccak_memory_addr)) +
FF(1)) -
153 static_cast<View
>(in.get(C::keccak_memory_addr_shift)));
157 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
158 auto tmp = (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
159 (
static_cast<View
>(in.get(C::keccak_memory_space_id)) -
160 static_cast<View
>(in.get(C::keccak_memory_space_id_shift)));
164 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
166 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
167 (
static_cast<View
>(in.get(C::keccak_memory_clk_shift)) -
static_cast<View
>(in.get(C::keccak_memory_clk)));
171 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
173 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
174 (
static_cast<View
>(in.get(C::keccak_memory_rw_shift)) -
static_cast<View
>(in.get(C::keccak_memory_rw)));
178 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
179 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_sel)) *
180 (
CView(keccak_memory_TAG_MIN_U64) *
181 ((
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_single_tag_error))) *
182 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_tag_min_u64_inv))) +
183 static_cast<View
>(in.get(C::keccak_memory_tag_min_u64_inv))) -
184 static_cast<View
>(in.get(C::keccak_memory_single_tag_error)));
188 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
190 (
static_cast<View
>(in.get(C::keccak_memory_val_1_)) -
191 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
static_cast<View
>(in.get(C::keccak_memory_val_0__shift)));
195 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
197 (
static_cast<View
>(in.get(C::keccak_memory_val_2_)) -
198 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
static_cast<View
>(in.get(C::keccak_memory_val_1__shift)));
202 using View =
typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
204 (
static_cast<View
>(in.get(C::keccak_memory_val_3_)) -
205 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
static_cast<View
>(in.get(C::keccak_memory_val_2__shift)));
209 using View =
typename std::tuple_element_t<26, ContainerOverSubrelations>::View;
211 (
static_cast<View
>(in.get(C::keccak_memory_val_4_)) -
212 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
static_cast<View
>(in.get(C::keccak_memory_val_3__shift)));
216 using View =
typename std::tuple_element_t<27, ContainerOverSubrelations>::View;
218 (
static_cast<View
>(in.get(C::keccak_memory_val_5_)) -
219 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
static_cast<View
>(in.get(C::keccak_memory_val_4__shift)));
223 using View =
typename std::tuple_element_t<28, ContainerOverSubrelations>::View;
225 (
static_cast<View
>(in.get(C::keccak_memory_val_6_)) -
226 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
static_cast<View
>(in.get(C::keccak_memory_val_5__shift)));
230 using View =
typename std::tuple_element_t<29, ContainerOverSubrelations>::View;
232 (
static_cast<View
>(in.get(C::keccak_memory_val_7_)) -
233 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
static_cast<View
>(in.get(C::keccak_memory_val_6__shift)));
237 using View =
typename std::tuple_element_t<30, ContainerOverSubrelations>::View;
239 (
static_cast<View
>(in.get(C::keccak_memory_val_8_)) -
240 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
static_cast<View
>(in.get(C::keccak_memory_val_7__shift)));
244 using View =
typename std::tuple_element_t<31, ContainerOverSubrelations>::View;
246 (
static_cast<View
>(in.get(C::keccak_memory_val_9_)) -
247 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
static_cast<View
>(in.get(C::keccak_memory_val_8__shift)));
251 using View =
typename std::tuple_element_t<32, ContainerOverSubrelations>::View;
253 (
static_cast<View
>(in.get(C::keccak_memory_val_10_)) -
254 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
static_cast<View
>(in.get(C::keccak_memory_val_9__shift)));
258 using View =
typename std::tuple_element_t<33, ContainerOverSubrelations>::View;
259 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_11_)) -
260 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
261 static_cast<View
>(in.get(C::keccak_memory_val_10__shift)));
265 using View =
typename std::tuple_element_t<34, ContainerOverSubrelations>::View;
266 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_12_)) -
267 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
268 static_cast<View
>(in.get(C::keccak_memory_val_11__shift)));
272 using View =
typename std::tuple_element_t<35, ContainerOverSubrelations>::View;
273 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_13_)) -
274 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
275 static_cast<View
>(in.get(C::keccak_memory_val_12__shift)));
279 using View =
typename std::tuple_element_t<36, ContainerOverSubrelations>::View;
280 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_14_)) -
281 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
282 static_cast<View
>(in.get(C::keccak_memory_val_13__shift)));
286 using View =
typename std::tuple_element_t<37, ContainerOverSubrelations>::View;
287 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_15_)) -
288 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
289 static_cast<View
>(in.get(C::keccak_memory_val_14__shift)));
293 using View =
typename std::tuple_element_t<38, ContainerOverSubrelations>::View;
294 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_16_)) -
295 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
296 static_cast<View
>(in.get(C::keccak_memory_val_15__shift)));
300 using View =
typename std::tuple_element_t<39, ContainerOverSubrelations>::View;
301 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_17_)) -
302 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
303 static_cast<View
>(in.get(C::keccak_memory_val_16__shift)));
307 using View =
typename std::tuple_element_t<40, ContainerOverSubrelations>::View;
308 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_18_)) -
309 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
310 static_cast<View
>(in.get(C::keccak_memory_val_17__shift)));
314 using View =
typename std::tuple_element_t<41, ContainerOverSubrelations>::View;
315 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_19_)) -
316 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
317 static_cast<View
>(in.get(C::keccak_memory_val_18__shift)));
321 using View =
typename std::tuple_element_t<42, ContainerOverSubrelations>::View;
322 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_20_)) -
323 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
324 static_cast<View
>(in.get(C::keccak_memory_val_19__shift)));
328 using View =
typename std::tuple_element_t<43, ContainerOverSubrelations>::View;
329 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_21_)) -
330 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
331 static_cast<View
>(in.get(C::keccak_memory_val_20__shift)));
335 using View =
typename std::tuple_element_t<44, ContainerOverSubrelations>::View;
336 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_22_)) -
337 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
338 static_cast<View
>(in.get(C::keccak_memory_val_21__shift)));
342 using View =
typename std::tuple_element_t<45, ContainerOverSubrelations>::View;
343 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_23_)) -
344 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
345 static_cast<View
>(in.get(C::keccak_memory_val_22__shift)));
349 using View =
typename std::tuple_element_t<46, ContainerOverSubrelations>::View;
350 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_24_)) -
351 (
FF(1) -
CView(keccak_memory_LATCH_CONDITION)) *
352 static_cast<View
>(in.get(C::keccak_memory_val_23__shift)));
356 using View =
typename std::tuple_element_t<47, ContainerOverSubrelations>::View;
358 static_cast<View
>(in.get(C::keccak_memory_sel)) *
359 (
static_cast<View
>(in.get(C::keccak_memory_num_rounds)) -
CView(constants_AVM_KECCAKF1600_NUM_ROUNDS));