30 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
31 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_start_read)) *
32 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_start_read)));
36 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
37 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_start_write)) *
38 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_start_write)));
42 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
43 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_start_read)) +
44 static_cast<View
>(in.get(C::keccak_memory_start_write))) *
45 (
static_cast<View
>(in.get(C::keccak_memory_ctr)) -
FF(1));
49 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
51 static_cast<View
>(in.get(C::keccak_memory_start_read)) *
static_cast<View
>(in.get(C::keccak_memory_rw));
55 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
56 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_start_write)) *
57 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_rw)));
61 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
62 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_ctr)) *
63 ((
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_sel))) *
64 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_ctr_inv))) +
65 static_cast<View
>(in.get(C::keccak_memory_ctr_inv))) -
66 static_cast<View
>(in.get(C::keccak_memory_sel)));
70 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
71 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_ctr_end)) *
72 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_ctr_end)));
76 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
77 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_sel)) *
78 (((
CView(constants_AVM_KECCAKF1600_STATE_SIZE) -
static_cast<View
>(in.get(C::keccak_memory_ctr))) *
79 (
static_cast<View
>(in.get(C::keccak_memory_ctr_end)) *
80 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_state_size_min_ctr_inv))) +
81 static_cast<View
>(in.get(C::keccak_memory_state_size_min_ctr_inv))) +
82 static_cast<View
>(in.get(C::keccak_memory_ctr_end))) -
87 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
88 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_last)) -
89 (
FF(1) - (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_ctr_end))) *
90 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_single_tag_error)))));
94 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
96 static_cast<View
>(in.get(C::keccak_memory_sel)) *
97 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
98 ((
static_cast<View
>(in.get(C::keccak_memory_ctr_shift)) -
static_cast<View
>(in.get(C::keccak_memory_ctr))) -
103 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
104 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_single_tag_error)) *
105 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_single_tag_error)));
109 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
110 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_rw)) *
111 static_cast<View
>(in.get(C::keccak_memory_single_tag_error));
115 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
116 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_last)) *
117 (
static_cast<View
>(in.get(C::keccak_memory_tag_error)) -
118 static_cast<View
>(in.get(C::keccak_memory_single_tag_error)));
122 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
123 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
124 (
static_cast<View
>(in.get(C::keccak_memory_tag_error)) -
125 static_cast<View
>(in.get(C::keccak_memory_tag_error_shift)));
129 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
130 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_sel)) *
131 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
132 ((
static_cast<View
>(in.get(C::keccak_memory_addr)) +
FF(1)) -
133 static_cast<View
>(in.get(C::keccak_memory_addr_shift)));
137 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
138 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
139 (
static_cast<View
>(in.get(C::keccak_memory_space_id)) -
140 static_cast<View
>(in.get(C::keccak_memory_space_id_shift)));
144 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
146 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
147 (
static_cast<View
>(in.get(C::keccak_memory_clk_shift)) -
static_cast<View
>(in.get(C::keccak_memory_clk)));
151 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
153 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
154 (
static_cast<View
>(in.get(C::keccak_memory_rw_shift)) -
static_cast<View
>(in.get(C::keccak_memory_rw)));
158 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
159 auto tmp =
static_cast<View
>(in.get(C::keccak_memory_sel)) *
160 (
CView(keccak_memory_TAG_MIN_U64) *
161 ((
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_single_tag_error))) *
162 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_tag_min_u64_inv))) +
163 static_cast<View
>(in.get(C::keccak_memory_tag_min_u64_inv))) -
164 static_cast<View
>(in.get(C::keccak_memory_single_tag_error)));
168 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
169 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_1_)) -
170 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
171 static_cast<View
>(in.get(C::keccak_memory_val_0__shift)));
175 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
176 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_2_)) -
177 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
178 static_cast<View
>(in.get(C::keccak_memory_val_1__shift)));
182 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
183 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_3_)) -
184 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
185 static_cast<View
>(in.get(C::keccak_memory_val_2__shift)));
189 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
190 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_4_)) -
191 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
192 static_cast<View
>(in.get(C::keccak_memory_val_3__shift)));
196 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
197 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_5_)) -
198 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
199 static_cast<View
>(in.get(C::keccak_memory_val_4__shift)));
203 using View =
typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
204 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_6_)) -
205 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
206 static_cast<View
>(in.get(C::keccak_memory_val_5__shift)));
210 using View =
typename std::tuple_element_t<26, ContainerOverSubrelations>::View;
211 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_7_)) -
212 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
213 static_cast<View
>(in.get(C::keccak_memory_val_6__shift)));
217 using View =
typename std::tuple_element_t<27, ContainerOverSubrelations>::View;
218 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_8_)) -
219 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
220 static_cast<View
>(in.get(C::keccak_memory_val_7__shift)));
224 using View =
typename std::tuple_element_t<28, ContainerOverSubrelations>::View;
225 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_9_)) -
226 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
227 static_cast<View
>(in.get(C::keccak_memory_val_8__shift)));
231 using View =
typename std::tuple_element_t<29, ContainerOverSubrelations>::View;
232 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_10_)) -
233 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
234 static_cast<View
>(in.get(C::keccak_memory_val_9__shift)));
238 using View =
typename std::tuple_element_t<30, ContainerOverSubrelations>::View;
239 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_11_)) -
240 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
241 static_cast<View
>(in.get(C::keccak_memory_val_10__shift)));
245 using View =
typename std::tuple_element_t<31, ContainerOverSubrelations>::View;
246 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_12_)) -
247 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
248 static_cast<View
>(in.get(C::keccak_memory_val_11__shift)));
252 using View =
typename std::tuple_element_t<32, ContainerOverSubrelations>::View;
253 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_13_)) -
254 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
255 static_cast<View
>(in.get(C::keccak_memory_val_12__shift)));
259 using View =
typename std::tuple_element_t<33, ContainerOverSubrelations>::View;
260 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_14_)) -
261 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
262 static_cast<View
>(in.get(C::keccak_memory_val_13__shift)));
266 using View =
typename std::tuple_element_t<34, ContainerOverSubrelations>::View;
267 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_15_)) -
268 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
269 static_cast<View
>(in.get(C::keccak_memory_val_14__shift)));
273 using View =
typename std::tuple_element_t<35, ContainerOverSubrelations>::View;
274 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_16_)) -
275 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
276 static_cast<View
>(in.get(C::keccak_memory_val_15__shift)));
280 using View =
typename std::tuple_element_t<36, ContainerOverSubrelations>::View;
281 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_17_)) -
282 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
283 static_cast<View
>(in.get(C::keccak_memory_val_16__shift)));
287 using View =
typename std::tuple_element_t<37, ContainerOverSubrelations>::View;
288 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_18_)) -
289 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
290 static_cast<View
>(in.get(C::keccak_memory_val_17__shift)));
294 using View =
typename std::tuple_element_t<38, ContainerOverSubrelations>::View;
295 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_19_)) -
296 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
297 static_cast<View
>(in.get(C::keccak_memory_val_18__shift)));
301 using View =
typename std::tuple_element_t<39, ContainerOverSubrelations>::View;
302 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_20_)) -
303 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
304 static_cast<View
>(in.get(C::keccak_memory_val_19__shift)));
308 using View =
typename std::tuple_element_t<40, ContainerOverSubrelations>::View;
309 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_21_)) -
310 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
311 static_cast<View
>(in.get(C::keccak_memory_val_20__shift)));
315 using View =
typename std::tuple_element_t<41, ContainerOverSubrelations>::View;
316 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_22_)) -
317 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
318 static_cast<View
>(in.get(C::keccak_memory_val_21__shift)));
322 using View =
typename std::tuple_element_t<42, ContainerOverSubrelations>::View;
323 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_23_)) -
324 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
325 static_cast<View
>(in.get(C::keccak_memory_val_22__shift)));
329 using View =
typename std::tuple_element_t<43, ContainerOverSubrelations>::View;
330 auto tmp = (
static_cast<View
>(in.get(C::keccak_memory_val_24_)) -
331 (
FF(1) -
static_cast<View
>(in.get(C::keccak_memory_last))) *
332 static_cast<View
>(in.get(C::keccak_memory_val_23__shift)));
336 using View =
typename std::tuple_element_t<44, ContainerOverSubrelations>::View;
338 static_cast<View
>(in.get(C::keccak_memory_sel)) *
339 (
static_cast<View
>(in.get(C::keccak_memory_num_rounds)) -
CView(constants_AVM_KECCAKF1600_NUM_ROUNDS));