31 const auto sha256_OUT_F = in.get(C::sha256_f) + in.get(C::sha256_init_f);
32 const auto sha256_OUT_G = in.get(C::sha256_g) + in.get(C::sha256_init_g);
33 const auto sha256_OUT_H = in.get(C::sha256_h) + in.get(C::sha256_init_h);
34 const auto sha256_LATCH_CONDITION = in.get(C::sha256_latch) + in.get(C::precomputed_first_row);
37 using View =
typename std::tuple_element_t<0, ContainerOverSubrelations>::View;
39 static_cast<View
>(in.get(C::sha256_perform_round)) * (
static_cast<View
>(in.get(C::sha256_xor_sel)) -
FF(2));
43 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
44 auto tmp =
static_cast<View
>(in.get(C::sha256_and_sel));
48 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
49 auto tmp = (
static_cast<View
>(in.get(C::sha256_perform_round)) -
50 (
FF(1) -
CView(sha256_LATCH_CONDITION)) *
CView(sha256_SEL_NO_ERR));
54 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
55 auto tmp = (
static_cast<View
>(in.get(C::sha256_last)) -
56 CView(sha256_SEL_NO_ERR) *
static_cast<View
>(in.get(C::sha256_latch)));
60 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
61 auto tmp = (
static_cast<View
>(in.get(C::sha256_start)) *
62 (
static_cast<View
>(in.get(C::sha256_rounds_remaining)) -
CView(sha256_NUM_ROUNDS)) +
63 static_cast<View
>(in.get(C::sha256_perform_round)) *
64 ((
static_cast<View
>(in.get(C::sha256_rounds_remaining)) -
65 static_cast<View
>(in.get(C::sha256_rounds_remaining_shift))) -
70 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
71 auto tmp =
CView(sha256_SEL_NO_ERR) *
72 (
static_cast<View
>(in.get(C::sha256_round_count)) -
73 (
CView(sha256_NUM_ROUNDS) -
static_cast<View
>(in.get(C::sha256_rounds_remaining))));
77 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
79 CView(sha256_SEL_NO_ERR) * ((
static_cast<View
>(in.get(C::sha256_rounds_remaining)) *
80 (
static_cast<View
>(in.get(C::sha256_latch)) *
81 (
FF(1) -
static_cast<View
>(in.get(C::sha256_rounds_remaining_inv))) +
82 static_cast<View
>(in.get(C::sha256_rounds_remaining_inv))) -
84 static_cast<View
>(in.get(C::sha256_latch)));
88 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
89 auto tmp =
CView(sha256_SEL_NO_ERR) * (
static_cast<View
>(in.get(C::sha256_two_pow_32)) -
FF(4294967296UL));
93 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
94 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
95 (
static_cast<View
>(in.get(C::sha256_a)) -
static_cast<View
>(in.get(C::sha256_init_a)));
99 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
100 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
101 (
static_cast<View
>(in.get(C::sha256_b)) -
static_cast<View
>(in.get(C::sha256_init_b)));
105 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
106 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
107 (
static_cast<View
>(in.get(C::sha256_c)) -
static_cast<View
>(in.get(C::sha256_init_c)));
111 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
112 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
113 (
static_cast<View
>(in.get(C::sha256_d)) -
static_cast<View
>(in.get(C::sha256_init_d)));
117 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
118 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
119 (
static_cast<View
>(in.get(C::sha256_e)) -
static_cast<View
>(in.get(C::sha256_init_e)));
123 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
124 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
125 (
static_cast<View
>(in.get(C::sha256_f)) -
static_cast<View
>(in.get(C::sha256_init_f)));
129 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
130 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
131 (
static_cast<View
>(in.get(C::sha256_g)) -
static_cast<View
>(in.get(C::sha256_init_g)));
135 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
136 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
137 (
static_cast<View
>(in.get(C::sha256_h)) -
static_cast<View
>(in.get(C::sha256_init_h)));
141 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
142 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
143 (
static_cast<View
>(in.get(C::sha256_init_a_shift)) -
static_cast<View
>(in.get(C::sha256_init_a)));
147 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
148 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
149 (
static_cast<View
>(in.get(C::sha256_init_b_shift)) -
static_cast<View
>(in.get(C::sha256_init_b)));
153 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
154 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
155 (
static_cast<View
>(in.get(C::sha256_init_c_shift)) -
static_cast<View
>(in.get(C::sha256_init_c)));
159 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
160 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
161 (
static_cast<View
>(in.get(C::sha256_init_d_shift)) -
static_cast<View
>(in.get(C::sha256_init_d)));
165 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
166 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
167 (
static_cast<View
>(in.get(C::sha256_init_e_shift)) -
static_cast<View
>(in.get(C::sha256_init_e)));
171 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
172 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
173 (
static_cast<View
>(in.get(C::sha256_init_f_shift)) -
static_cast<View
>(in.get(C::sha256_init_f)));
177 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
178 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
179 (
static_cast<View
>(in.get(C::sha256_init_g_shift)) -
static_cast<View
>(in.get(C::sha256_init_g)));
183 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
184 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
185 (
static_cast<View
>(in.get(C::sha256_init_h_shift)) -
static_cast<View
>(in.get(C::sha256_init_h)));
189 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
191 static_cast<View
>(in.get(C::sha256_perform_round)) *
192 (
static_cast<View
>(in.get(C::sha256_helper_w0_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w1)));
196 using View =
typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
198 static_cast<View
>(in.get(C::sha256_perform_round)) *
199 (
static_cast<View
>(in.get(C::sha256_helper_w1_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w2)));
203 using View =
typename std::tuple_element_t<26, ContainerOverSubrelations>::View;
205 static_cast<View
>(in.get(C::sha256_perform_round)) *
206 (
static_cast<View
>(in.get(C::sha256_helper_w2_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w3)));
210 using View =
typename std::tuple_element_t<27, ContainerOverSubrelations>::View;
212 static_cast<View
>(in.get(C::sha256_perform_round)) *
213 (
static_cast<View
>(in.get(C::sha256_helper_w3_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w4)));
217 using View =
typename std::tuple_element_t<28, ContainerOverSubrelations>::View;
219 static_cast<View
>(in.get(C::sha256_perform_round)) *
220 (
static_cast<View
>(in.get(C::sha256_helper_w4_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w5)));
224 using View =
typename std::tuple_element_t<29, ContainerOverSubrelations>::View;
226 static_cast<View
>(in.get(C::sha256_perform_round)) *
227 (
static_cast<View
>(in.get(C::sha256_helper_w5_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w6)));
231 using View =
typename std::tuple_element_t<30, ContainerOverSubrelations>::View;
233 static_cast<View
>(in.get(C::sha256_perform_round)) *
234 (
static_cast<View
>(in.get(C::sha256_helper_w6_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w7)));
238 using View =
typename std::tuple_element_t<31, ContainerOverSubrelations>::View;
240 static_cast<View
>(in.get(C::sha256_perform_round)) *
241 (
static_cast<View
>(in.get(C::sha256_helper_w7_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w8)));
245 using View =
typename std::tuple_element_t<32, ContainerOverSubrelations>::View;
247 static_cast<View
>(in.get(C::sha256_perform_round)) *
248 (
static_cast<View
>(in.get(C::sha256_helper_w8_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w9)));
252 using View =
typename std::tuple_element_t<33, ContainerOverSubrelations>::View;
254 static_cast<View
>(in.get(C::sha256_perform_round)) *
255 (
static_cast<View
>(in.get(C::sha256_helper_w9_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w10)));
259 using View =
typename std::tuple_element_t<34, ContainerOverSubrelations>::View;
261 static_cast<View
>(in.get(C::sha256_perform_round)) *
262 (
static_cast<View
>(in.get(C::sha256_helper_w10_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w11)));
266 using View =
typename std::tuple_element_t<35, ContainerOverSubrelations>::View;
268 static_cast<View
>(in.get(C::sha256_perform_round)) *
269 (
static_cast<View
>(in.get(C::sha256_helper_w11_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w12)));
273 using View =
typename std::tuple_element_t<36, ContainerOverSubrelations>::View;
275 static_cast<View
>(in.get(C::sha256_perform_round)) *
276 (
static_cast<View
>(in.get(C::sha256_helper_w12_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w13)));
280 using View =
typename std::tuple_element_t<37, ContainerOverSubrelations>::View;
282 static_cast<View
>(in.get(C::sha256_perform_round)) *
283 (
static_cast<View
>(in.get(C::sha256_helper_w13_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w14)));
287 using View =
typename std::tuple_element_t<38, ContainerOverSubrelations>::View;
289 static_cast<View
>(in.get(C::sha256_perform_round)) *
290 (
static_cast<View
>(in.get(C::sha256_helper_w14_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w15)));
294 using View =
typename std::tuple_element_t<39, ContainerOverSubrelations>::View;
295 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
296 (
static_cast<View
>(in.get(C::sha256_helper_w15_shift)) -
static_cast<View
>(in.get(C::sha256_w)));
300 using View =
typename std::tuple_element_t<40, ContainerOverSubrelations>::View;
301 auto tmp = (
static_cast<View
>(in.get(C::sha256_sel_compute_w)) -
302 static_cast<View
>(in.get(C::sha256_perform_round)) *
303 (
FF(1) -
static_cast<View
>(in.get(C::sha256_sel_is_input_round))));
307 using View =
typename std::tuple_element_t<41, ContainerOverSubrelations>::View;
308 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
309 ((
static_cast<View
>(in.get(C::sha256_computed_w_lhs)) *
FF(4294967296UL) +
310 static_cast<View
>(in.get(C::sha256_computed_w_rhs))) -
311 CView(sha256_COMPUTED_W));
315 using View =
typename std::tuple_element_t<42, ContainerOverSubrelations>::View;
316 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
317 (
static_cast<View
>(in.get(C::sha256_w)) -
static_cast<View
>(in.get(C::sha256_computed_w_rhs)));
321 using View =
typename std::tuple_element_t<43, ContainerOverSubrelations>::View;
323 static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
324 (
static_cast<View
>(in.get(C::sha256_helper_w1)) -
325 (
static_cast<View
>(in.get(C::sha256_lhs_w_7)) *
FF(128) +
static_cast<View
>(in.get(C::sha256_rhs_w_7))));
329 using View =
typename std::tuple_element_t<44, ContainerOverSubrelations>::View;
330 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
331 (
static_cast<View
>(in.get(C::sha256_w_15_rotr_7)) -
332 (
static_cast<View
>(in.get(C::sha256_rhs_w_7)) *
FF(33554432) +
333 static_cast<View
>(in.get(C::sha256_lhs_w_7))));
337 using View =
typename std::tuple_element_t<45, ContainerOverSubrelations>::View;
338 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
339 (
static_cast<View
>(in.get(C::sha256_two_pow_7)) -
FF(128));
343 using View =
typename std::tuple_element_t<46, ContainerOverSubrelations>::View;
344 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
345 (
static_cast<View
>(in.get(C::sha256_helper_w1)) -
346 (
static_cast<View
>(in.get(C::sha256_lhs_w_18)) *
FF(262144) +
347 static_cast<View
>(in.get(C::sha256_rhs_w_18))));
351 using View =
typename std::tuple_element_t<47, ContainerOverSubrelations>::View;
352 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
353 (
static_cast<View
>(in.get(C::sha256_w_15_rotr_18)) -
354 (
static_cast<View
>(in.get(C::sha256_rhs_w_18)) *
FF(16384) +
355 static_cast<View
>(in.get(C::sha256_lhs_w_18))));
359 using View =
typename std::tuple_element_t<48, ContainerOverSubrelations>::View;
360 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
361 (
static_cast<View
>(in.get(C::sha256_two_pow_18)) -
FF(262144));
365 using View =
typename std::tuple_element_t<49, ContainerOverSubrelations>::View;
367 static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
368 (
static_cast<View
>(in.get(C::sha256_helper_w1)) -
369 (
static_cast<View
>(in.get(C::sha256_lhs_w_3)) *
FF(8) +
static_cast<View
>(in.get(C::sha256_rhs_w_3))));
373 using View =
typename std::tuple_element_t<50, ContainerOverSubrelations>::View;
374 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
375 (
static_cast<View
>(in.get(C::sha256_w_15_rshift_3)) -
static_cast<View
>(in.get(C::sha256_lhs_w_3)));
379 using View =
typename std::tuple_element_t<51, ContainerOverSubrelations>::View;
380 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
381 (
static_cast<View
>(in.get(C::sha256_two_pow_3)) -
FF(8));
385 using View =
typename std::tuple_element_t<52, ContainerOverSubrelations>::View;
386 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
387 (
static_cast<View
>(in.get(C::sha256_helper_w14)) -
388 (
static_cast<View
>(in.get(C::sha256_lhs_w_17)) *
FF(131072) +
389 static_cast<View
>(in.get(C::sha256_rhs_w_17))));
393 using View =
typename std::tuple_element_t<53, ContainerOverSubrelations>::View;
394 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
395 (
static_cast<View
>(in.get(C::sha256_w_2_rotr_17)) -
396 (
static_cast<View
>(in.get(C::sha256_rhs_w_17)) *
FF(32768) +
397 static_cast<View
>(in.get(C::sha256_lhs_w_17))));
401 using View =
typename std::tuple_element_t<54, ContainerOverSubrelations>::View;
402 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
403 (
static_cast<View
>(in.get(C::sha256_two_pow_17)) -
FF(131072));
407 using View =
typename std::tuple_element_t<55, ContainerOverSubrelations>::View;
408 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
409 (
static_cast<View
>(in.get(C::sha256_helper_w14)) -
410 (
static_cast<View
>(in.get(C::sha256_lhs_w_19)) *
FF(524288) +
411 static_cast<View
>(in.get(C::sha256_rhs_w_19))));
415 using View =
typename std::tuple_element_t<56, ContainerOverSubrelations>::View;
416 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
417 (
static_cast<View
>(in.get(C::sha256_w_2_rotr_19)) -
418 (
static_cast<View
>(in.get(C::sha256_rhs_w_19)) *
FF(8192) +
419 static_cast<View
>(in.get(C::sha256_lhs_w_19))));
423 using View =
typename std::tuple_element_t<57, ContainerOverSubrelations>::View;
424 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
425 (
static_cast<View
>(in.get(C::sha256_two_pow_19)) -
FF(524288));
429 using View =
typename std::tuple_element_t<58, ContainerOverSubrelations>::View;
430 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
431 (
static_cast<View
>(in.get(C::sha256_helper_w14)) -
432 (
static_cast<View
>(in.get(C::sha256_lhs_w_10)) *
FF(1024) +
433 static_cast<View
>(in.get(C::sha256_rhs_w_10))));
437 using View =
typename std::tuple_element_t<59, ContainerOverSubrelations>::View;
438 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
439 (
static_cast<View
>(in.get(C::sha256_w_2_rshift_10)) -
static_cast<View
>(in.get(C::sha256_lhs_w_10)));
443 using View =
typename std::tuple_element_t<60, ContainerOverSubrelations>::View;
444 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
445 (
static_cast<View
>(in.get(C::sha256_two_pow_10)) -
FF(1024));
449 using View =
typename std::tuple_element_t<61, ContainerOverSubrelations>::View;
450 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
451 (
static_cast<View
>(in.get(C::sha256_e)) - (
static_cast<View
>(in.get(C::sha256_lhs_e_6)) *
FF(64) +
452 static_cast<View
>(in.get(C::sha256_rhs_e_6))));
456 using View =
typename std::tuple_element_t<62, ContainerOverSubrelations>::View;
457 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
458 (
static_cast<View
>(in.get(C::sha256_e_rotr_6)) -
459 (
static_cast<View
>(in.get(C::sha256_rhs_e_6)) *
FF(67108864) +
460 static_cast<View
>(in.get(C::sha256_lhs_e_6))));
464 using View =
typename std::tuple_element_t<63, ContainerOverSubrelations>::View;
465 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
466 (
static_cast<View
>(in.get(C::sha256_two_pow_6)) -
FF(64));
470 using View =
typename std::tuple_element_t<64, ContainerOverSubrelations>::View;
471 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
472 (
static_cast<View
>(in.get(C::sha256_e)) - (
static_cast<View
>(in.get(C::sha256_lhs_e_11)) *
FF(2048) +
473 static_cast<View
>(in.get(C::sha256_rhs_e_11))));
477 using View =
typename std::tuple_element_t<65, ContainerOverSubrelations>::View;
478 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
479 (
static_cast<View
>(in.get(C::sha256_e_rotr_11)) -
480 (
static_cast<View
>(in.get(C::sha256_rhs_e_11)) *
FF(2097152) +
481 static_cast<View
>(in.get(C::sha256_lhs_e_11))));
485 using View =
typename std::tuple_element_t<66, ContainerOverSubrelations>::View;
486 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
487 (
static_cast<View
>(in.get(C::sha256_two_pow_11)) -
FF(2048));
491 using View =
typename std::tuple_element_t<67, ContainerOverSubrelations>::View;
493 static_cast<View
>(in.get(C::sha256_perform_round)) *
494 (
static_cast<View
>(in.get(C::sha256_e)) - (
static_cast<View
>(in.get(C::sha256_lhs_e_25)) *
FF(33554432) +
495 static_cast<View
>(in.get(C::sha256_rhs_e_25))));
499 using View =
typename std::tuple_element_t<68, ContainerOverSubrelations>::View;
501 static_cast<View
>(in.get(C::sha256_perform_round)) *
502 (
static_cast<View
>(in.get(C::sha256_e_rotr_25)) -
503 (
static_cast<View
>(in.get(C::sha256_rhs_e_25)) *
FF(128) +
static_cast<View
>(in.get(C::sha256_lhs_e_25))));
507 using View =
typename std::tuple_element_t<69, ContainerOverSubrelations>::View;
508 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
509 (
static_cast<View
>(in.get(C::sha256_two_pow_25)) -
FF(33554432));
513 using View =
typename std::tuple_element_t<70, ContainerOverSubrelations>::View;
515 static_cast<View
>(in.get(C::sha256_perform_round)) *
516 ((
static_cast<View
>(in.get(C::sha256_e)) +
static_cast<View
>(in.get(C::sha256_not_e))) -
FF(4294967295UL));
520 using View =
typename std::tuple_element_t<71, ContainerOverSubrelations>::View;
521 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
522 (
static_cast<View
>(in.get(C::sha256_a)) - (
static_cast<View
>(in.get(C::sha256_lhs_a_2)) *
FF(4) +
523 static_cast<View
>(in.get(C::sha256_rhs_a_2))));
527 using View =
typename std::tuple_element_t<72, ContainerOverSubrelations>::View;
528 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
529 (
static_cast<View
>(in.get(C::sha256_a_rotr_2)) -
530 (
static_cast<View
>(in.get(C::sha256_rhs_a_2)) *
FF(1073741824) +
531 static_cast<View
>(in.get(C::sha256_lhs_a_2))));
535 using View =
typename std::tuple_element_t<73, ContainerOverSubrelations>::View;
536 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
537 (
static_cast<View
>(in.get(C::sha256_two_pow_2)) -
FF(4));
541 using View =
typename std::tuple_element_t<74, ContainerOverSubrelations>::View;
542 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
543 (
static_cast<View
>(in.get(C::sha256_a)) - (
static_cast<View
>(in.get(C::sha256_lhs_a_13)) *
FF(8192) +
544 static_cast<View
>(in.get(C::sha256_rhs_a_13))));
548 using View =
typename std::tuple_element_t<75, ContainerOverSubrelations>::View;
549 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
550 (
static_cast<View
>(in.get(C::sha256_a_rotr_13)) -
551 (
static_cast<View
>(in.get(C::sha256_rhs_a_13)) *
FF(524288) +
552 static_cast<View
>(in.get(C::sha256_lhs_a_13))));
556 using View =
typename std::tuple_element_t<76, ContainerOverSubrelations>::View;
557 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
558 (
static_cast<View
>(in.get(C::sha256_two_pow_13)) -
FF(8192));
562 using View =
typename std::tuple_element_t<77, ContainerOverSubrelations>::View;
564 static_cast<View
>(in.get(C::sha256_perform_round)) *
565 (
static_cast<View
>(in.get(C::sha256_a)) - (
static_cast<View
>(in.get(C::sha256_lhs_a_22)) *
FF(4194304) +
566 static_cast<View
>(in.get(C::sha256_rhs_a_22))));
570 using View =
typename std::tuple_element_t<78, ContainerOverSubrelations>::View;
571 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
572 (
static_cast<View
>(in.get(C::sha256_a_rotr_22)) -
573 (
static_cast<View
>(in.get(C::sha256_rhs_a_22)) *
FF(1024) +
574 static_cast<View
>(in.get(C::sha256_lhs_a_22))));
578 using View =
typename std::tuple_element_t<79, ContainerOverSubrelations>::View;
579 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
580 (
static_cast<View
>(in.get(C::sha256_two_pow_22)) -
FF(4194304));
584 using View =
typename std::tuple_element_t<80, ContainerOverSubrelations>::View;
585 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
586 ((
static_cast<View
>(in.get(C::sha256_next_a_lhs)) *
FF(4294967296UL) +
587 static_cast<View
>(in.get(C::sha256_next_a_rhs))) -
588 CView(sha256_NEXT_A));
592 using View =
typename std::tuple_element_t<81, ContainerOverSubrelations>::View;
593 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
594 ((
static_cast<View
>(in.get(C::sha256_next_e_lhs)) *
FF(4294967296UL) +
595 static_cast<View
>(in.get(C::sha256_next_e_rhs))) -
596 CView(sha256_NEXT_E));
600 using View =
typename std::tuple_element_t<82, ContainerOverSubrelations>::View;
601 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
602 (
static_cast<View
>(in.get(C::sha256_a_shift)) -
static_cast<View
>(in.get(C::sha256_next_a_rhs)));
606 using View =
typename std::tuple_element_t<83, ContainerOverSubrelations>::View;
607 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
608 (
static_cast<View
>(in.get(C::sha256_b_shift)) -
static_cast<View
>(in.get(C::sha256_a)));
612 using View =
typename std::tuple_element_t<84, ContainerOverSubrelations>::View;
613 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
614 (
static_cast<View
>(in.get(C::sha256_c_shift)) -
static_cast<View
>(in.get(C::sha256_b)));
618 using View =
typename std::tuple_element_t<85, ContainerOverSubrelations>::View;
619 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
620 (
static_cast<View
>(in.get(C::sha256_d_shift)) -
static_cast<View
>(in.get(C::sha256_c)));
624 using View =
typename std::tuple_element_t<86, ContainerOverSubrelations>::View;
625 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
626 (
static_cast<View
>(in.get(C::sha256_e_shift)) -
static_cast<View
>(in.get(C::sha256_next_e_rhs)));
630 using View =
typename std::tuple_element_t<87, ContainerOverSubrelations>::View;
631 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
632 (
static_cast<View
>(in.get(C::sha256_f_shift)) -
static_cast<View
>(in.get(C::sha256_e)));
636 using View =
typename std::tuple_element_t<88, ContainerOverSubrelations>::View;
637 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
638 (
static_cast<View
>(in.get(C::sha256_g_shift)) -
static_cast<View
>(in.get(C::sha256_f)));
642 using View =
typename std::tuple_element_t<89, ContainerOverSubrelations>::View;
643 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
644 (
static_cast<View
>(in.get(C::sha256_h_shift)) -
static_cast<View
>(in.get(C::sha256_g)));
648 using View =
typename std::tuple_element_t<90, ContainerOverSubrelations>::View;
649 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
650 (
CView(sha256_OUT_A) - (
static_cast<View
>(in.get(C::sha256_output_a_lhs)) *
FF(4294967296UL) +
651 static_cast<View
>(in.get(C::sha256_output_a_rhs))));
655 using View =
typename std::tuple_element_t<91, ContainerOverSubrelations>::View;
656 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
657 (
CView(sha256_OUT_B) - (
static_cast<View
>(in.get(C::sha256_output_b_lhs)) *
FF(4294967296UL) +
658 static_cast<View
>(in.get(C::sha256_output_b_rhs))));
662 using View =
typename std::tuple_element_t<92, ContainerOverSubrelations>::View;
663 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
664 (
CView(sha256_OUT_C) - (
static_cast<View
>(in.get(C::sha256_output_c_lhs)) *
FF(4294967296UL) +
665 static_cast<View
>(in.get(C::sha256_output_c_rhs))));
669 using View =
typename std::tuple_element_t<93, ContainerOverSubrelations>::View;
670 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
671 (
CView(sha256_OUT_D) - (
static_cast<View
>(in.get(C::sha256_output_d_lhs)) *
FF(4294967296UL) +
672 static_cast<View
>(in.get(C::sha256_output_d_rhs))));
676 using View =
typename std::tuple_element_t<94, ContainerOverSubrelations>::View;
677 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
678 (
CView(sha256_OUT_E) - (
static_cast<View
>(in.get(C::sha256_output_e_lhs)) *
FF(4294967296UL) +
679 static_cast<View
>(in.get(C::sha256_output_e_rhs))));
683 using View =
typename std::tuple_element_t<95, ContainerOverSubrelations>::View;
684 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
685 (
CView(sha256_OUT_F) - (
static_cast<View
>(in.get(C::sha256_output_f_lhs)) *
FF(4294967296UL) +
686 static_cast<View
>(in.get(C::sha256_output_f_rhs))));
690 using View =
typename std::tuple_element_t<96, ContainerOverSubrelations>::View;
691 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
692 (
CView(sha256_OUT_G) - (
static_cast<View
>(in.get(C::sha256_output_g_lhs)) *
FF(4294967296UL) +
693 static_cast<View
>(in.get(C::sha256_output_g_rhs))));
697 using View =
typename std::tuple_element_t<97, ContainerOverSubrelations>::View;
698 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
699 (
CView(sha256_OUT_H) - (
static_cast<View
>(in.get(C::sha256_output_h_lhs)) *
FF(4294967296UL) +
700 static_cast<View
>(in.get(C::sha256_output_h_rhs))));