31 const auto sha256_OUT_E = in.get(C::sha256_e) + in.get(C::sha256_init_e);
32 const auto sha256_OUT_F = in.get(C::sha256_f) + in.get(C::sha256_init_f);
33 const auto sha256_OUT_G = in.get(C::sha256_g) + in.get(C::sha256_init_g);
34 const auto sha256_OUT_H = in.get(C::sha256_h) + in.get(C::sha256_init_h);
35 const auto sha256_LATCH_CONDITION = in.get(C::sha256_latch) + in.get(C::precomputed_first_row);
38 using View =
typename std::tuple_element_t<0, ContainerOverSubrelations>::View;
40 static_cast<View
>(in.get(C::sha256_perform_round)) * (
static_cast<View
>(in.get(C::sha256_xor_sel)) -
FF(2));
44 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
45 auto tmp =
static_cast<View
>(in.get(C::sha256_and_sel));
49 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
50 auto tmp = (
static_cast<View
>(in.get(C::sha256_perform_round)) -
51 (
FF(1) -
CView(sha256_LATCH_CONDITION)) *
CView(sha256_SEL_NO_ERR));
55 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
56 auto tmp = (
static_cast<View
>(in.get(C::sha256_start)) *
57 (
static_cast<View
>(in.get(C::sha256_rounds_remaining)) -
CView(sha256_NUM_ROUNDS)) +
58 static_cast<View
>(in.get(C::sha256_perform_round)) *
59 ((
static_cast<View
>(in.get(C::sha256_rounds_remaining)) -
60 static_cast<View
>(in.get(C::sha256_rounds_remaining_shift))) -
65 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
66 auto tmp =
CView(sha256_SEL_NO_ERR) *
67 (
static_cast<View
>(in.get(C::sha256_round_count)) -
68 (
CView(sha256_NUM_ROUNDS) -
static_cast<View
>(in.get(C::sha256_rounds_remaining))));
72 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
74 CView(sha256_SEL_NO_ERR) * ((
static_cast<View
>(in.get(C::sha256_rounds_remaining)) *
75 (
static_cast<View
>(in.get(C::sha256_latch)) *
76 (
FF(1) -
static_cast<View
>(in.get(C::sha256_rounds_remaining_inv))) +
77 static_cast<View
>(in.get(C::sha256_rounds_remaining_inv))) -
79 static_cast<View
>(in.get(C::sha256_latch)));
83 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
84 auto tmp =
CView(sha256_SEL_NO_ERR) * (
static_cast<View
>(in.get(C::sha256_two_pow_32)) -
FF(4294967296UL));
88 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
89 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
90 (
static_cast<View
>(in.get(C::sha256_a)) -
static_cast<View
>(in.get(C::sha256_init_a)));
94 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
95 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
96 (
static_cast<View
>(in.get(C::sha256_b)) -
static_cast<View
>(in.get(C::sha256_init_b)));
100 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
101 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
102 (
static_cast<View
>(in.get(C::sha256_c)) -
static_cast<View
>(in.get(C::sha256_init_c)));
106 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
107 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
108 (
static_cast<View
>(in.get(C::sha256_d)) -
static_cast<View
>(in.get(C::sha256_init_d)));
112 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
113 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
114 (
static_cast<View
>(in.get(C::sha256_e)) -
static_cast<View
>(in.get(C::sha256_init_e)));
118 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
119 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
120 (
static_cast<View
>(in.get(C::sha256_f)) -
static_cast<View
>(in.get(C::sha256_init_f)));
124 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
125 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
126 (
static_cast<View
>(in.get(C::sha256_g)) -
static_cast<View
>(in.get(C::sha256_init_g)));
130 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
131 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
132 (
static_cast<View
>(in.get(C::sha256_h)) -
static_cast<View
>(in.get(C::sha256_init_h)));
136 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
138 static_cast<View
>(in.get(C::sha256_perform_round)) *
139 (
static_cast<View
>(in.get(C::sha256_helper_w0_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w1)));
143 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
145 static_cast<View
>(in.get(C::sha256_perform_round)) *
146 (
static_cast<View
>(in.get(C::sha256_helper_w1_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w2)));
150 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
152 static_cast<View
>(in.get(C::sha256_perform_round)) *
153 (
static_cast<View
>(in.get(C::sha256_helper_w2_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w3)));
157 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
159 static_cast<View
>(in.get(C::sha256_perform_round)) *
160 (
static_cast<View
>(in.get(C::sha256_helper_w3_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w4)));
164 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
166 static_cast<View
>(in.get(C::sha256_perform_round)) *
167 (
static_cast<View
>(in.get(C::sha256_helper_w4_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w5)));
171 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
173 static_cast<View
>(in.get(C::sha256_perform_round)) *
174 (
static_cast<View
>(in.get(C::sha256_helper_w5_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w6)));
178 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
180 static_cast<View
>(in.get(C::sha256_perform_round)) *
181 (
static_cast<View
>(in.get(C::sha256_helper_w6_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w7)));
185 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
187 static_cast<View
>(in.get(C::sha256_perform_round)) *
188 (
static_cast<View
>(in.get(C::sha256_helper_w7_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w8)));
192 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
194 static_cast<View
>(in.get(C::sha256_perform_round)) *
195 (
static_cast<View
>(in.get(C::sha256_helper_w8_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w9)));
199 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
201 static_cast<View
>(in.get(C::sha256_perform_round)) *
202 (
static_cast<View
>(in.get(C::sha256_helper_w9_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w10)));
206 using View =
typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
208 static_cast<View
>(in.get(C::sha256_perform_round)) *
209 (
static_cast<View
>(in.get(C::sha256_helper_w10_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w11)));
213 using View =
typename std::tuple_element_t<26, ContainerOverSubrelations>::View;
215 static_cast<View
>(in.get(C::sha256_perform_round)) *
216 (
static_cast<View
>(in.get(C::sha256_helper_w11_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w12)));
220 using View =
typename std::tuple_element_t<27, ContainerOverSubrelations>::View;
222 static_cast<View
>(in.get(C::sha256_perform_round)) *
223 (
static_cast<View
>(in.get(C::sha256_helper_w12_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w13)));
227 using View =
typename std::tuple_element_t<28, ContainerOverSubrelations>::View;
229 static_cast<View
>(in.get(C::sha256_perform_round)) *
230 (
static_cast<View
>(in.get(C::sha256_helper_w13_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w14)));
234 using View =
typename std::tuple_element_t<29, ContainerOverSubrelations>::View;
236 static_cast<View
>(in.get(C::sha256_perform_round)) *
237 (
static_cast<View
>(in.get(C::sha256_helper_w14_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w15)));
241 using View =
typename std::tuple_element_t<30, ContainerOverSubrelations>::View;
242 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
243 (
static_cast<View
>(in.get(C::sha256_helper_w15_shift)) -
static_cast<View
>(in.get(C::sha256_w)));
247 using View =
typename std::tuple_element_t<31, ContainerOverSubrelations>::View;
248 auto tmp = (
static_cast<View
>(in.get(C::sha256_sel_compute_w)) -
249 static_cast<View
>(in.get(C::sha256_perform_round)) *
250 (
FF(1) -
static_cast<View
>(in.get(C::sha256_sel_is_input_round))));
254 using View =
typename std::tuple_element_t<32, ContainerOverSubrelations>::View;
255 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
256 ((
static_cast<View
>(in.get(C::sha256_computed_w_lhs)) *
FF(4294967296UL) +
257 static_cast<View
>(in.get(C::sha256_computed_w_rhs))) -
258 CView(sha256_COMPUTED_W));
262 using View =
typename std::tuple_element_t<33, ContainerOverSubrelations>::View;
263 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
264 (
static_cast<View
>(in.get(C::sha256_w)) -
static_cast<View
>(in.get(C::sha256_computed_w_rhs)));
268 using View =
typename std::tuple_element_t<34, ContainerOverSubrelations>::View;
270 static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
271 (
static_cast<View
>(in.get(C::sha256_helper_w1)) -
272 (
static_cast<View
>(in.get(C::sha256_lhs_w_7)) *
FF(128) +
static_cast<View
>(in.get(C::sha256_rhs_w_7))));
276 using View =
typename std::tuple_element_t<35, ContainerOverSubrelations>::View;
277 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
278 (
static_cast<View
>(in.get(C::sha256_w_15_rotr_7)) -
279 (
static_cast<View
>(in.get(C::sha256_rhs_w_7)) *
FF(33554432) +
280 static_cast<View
>(in.get(C::sha256_lhs_w_7))));
284 using View =
typename std::tuple_element_t<36, ContainerOverSubrelations>::View;
285 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
286 (
static_cast<View
>(in.get(C::sha256_two_pow_7)) -
FF(128));
290 using View =
typename std::tuple_element_t<37, ContainerOverSubrelations>::View;
291 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
292 (
static_cast<View
>(in.get(C::sha256_helper_w1)) -
293 (
static_cast<View
>(in.get(C::sha256_lhs_w_18)) *
FF(262144) +
294 static_cast<View
>(in.get(C::sha256_rhs_w_18))));
298 using View =
typename std::tuple_element_t<38, ContainerOverSubrelations>::View;
299 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
300 (
static_cast<View
>(in.get(C::sha256_w_15_rotr_18)) -
301 (
static_cast<View
>(in.get(C::sha256_rhs_w_18)) *
FF(16384) +
302 static_cast<View
>(in.get(C::sha256_lhs_w_18))));
306 using View =
typename std::tuple_element_t<39, ContainerOverSubrelations>::View;
307 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
308 (
static_cast<View
>(in.get(C::sha256_two_pow_18)) -
FF(262144));
312 using View =
typename std::tuple_element_t<40, ContainerOverSubrelations>::View;
314 static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
315 (
static_cast<View
>(in.get(C::sha256_helper_w1)) -
316 (
static_cast<View
>(in.get(C::sha256_lhs_w_3)) *
FF(8) +
static_cast<View
>(in.get(C::sha256_rhs_w_3))));
320 using View =
typename std::tuple_element_t<41, ContainerOverSubrelations>::View;
321 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
322 (
static_cast<View
>(in.get(C::sha256_w_15_rshift_3)) -
static_cast<View
>(in.get(C::sha256_lhs_w_3)));
326 using View =
typename std::tuple_element_t<42, ContainerOverSubrelations>::View;
327 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
328 (
static_cast<View
>(in.get(C::sha256_two_pow_3)) -
FF(8));
332 using View =
typename std::tuple_element_t<43, ContainerOverSubrelations>::View;
333 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
334 (
static_cast<View
>(in.get(C::sha256_helper_w14)) -
335 (
static_cast<View
>(in.get(C::sha256_lhs_w_17)) *
FF(131072) +
336 static_cast<View
>(in.get(C::sha256_rhs_w_17))));
340 using View =
typename std::tuple_element_t<44, ContainerOverSubrelations>::View;
341 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
342 (
static_cast<View
>(in.get(C::sha256_w_2_rotr_17)) -
343 (
static_cast<View
>(in.get(C::sha256_rhs_w_17)) *
FF(32768) +
344 static_cast<View
>(in.get(C::sha256_lhs_w_17))));
348 using View =
typename std::tuple_element_t<45, ContainerOverSubrelations>::View;
349 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
350 (
static_cast<View
>(in.get(C::sha256_two_pow_17)) -
FF(131072));
354 using View =
typename std::tuple_element_t<46, ContainerOverSubrelations>::View;
355 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
356 (
static_cast<View
>(in.get(C::sha256_helper_w14)) -
357 (
static_cast<View
>(in.get(C::sha256_lhs_w_19)) *
FF(524288) +
358 static_cast<View
>(in.get(C::sha256_rhs_w_19))));
362 using View =
typename std::tuple_element_t<47, ContainerOverSubrelations>::View;
363 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
364 (
static_cast<View
>(in.get(C::sha256_w_2_rotr_19)) -
365 (
static_cast<View
>(in.get(C::sha256_rhs_w_19)) *
FF(8192) +
366 static_cast<View
>(in.get(C::sha256_lhs_w_19))));
370 using View =
typename std::tuple_element_t<48, ContainerOverSubrelations>::View;
371 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
372 (
static_cast<View
>(in.get(C::sha256_two_pow_19)) -
FF(524288));
376 using View =
typename std::tuple_element_t<49, ContainerOverSubrelations>::View;
377 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
378 (
static_cast<View
>(in.get(C::sha256_helper_w14)) -
379 (
static_cast<View
>(in.get(C::sha256_lhs_w_10)) *
FF(1024) +
380 static_cast<View
>(in.get(C::sha256_rhs_w_10))));
384 using View =
typename std::tuple_element_t<50, ContainerOverSubrelations>::View;
385 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
386 (
static_cast<View
>(in.get(C::sha256_w_2_rshift_10)) -
static_cast<View
>(in.get(C::sha256_lhs_w_10)));
390 using View =
typename std::tuple_element_t<51, ContainerOverSubrelations>::View;
391 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
392 (
static_cast<View
>(in.get(C::sha256_two_pow_10)) -
FF(1024));
396 using View =
typename std::tuple_element_t<52, ContainerOverSubrelations>::View;
397 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
398 (
static_cast<View
>(in.get(C::sha256_e)) - (
static_cast<View
>(in.get(C::sha256_lhs_e_6)) *
FF(64) +
399 static_cast<View
>(in.get(C::sha256_rhs_e_6))));
403 using View =
typename std::tuple_element_t<53, ContainerOverSubrelations>::View;
404 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
405 (
static_cast<View
>(in.get(C::sha256_e_rotr_6)) -
406 (
static_cast<View
>(in.get(C::sha256_rhs_e_6)) *
FF(67108864) +
407 static_cast<View
>(in.get(C::sha256_lhs_e_6))));
411 using View =
typename std::tuple_element_t<54, ContainerOverSubrelations>::View;
412 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
413 (
static_cast<View
>(in.get(C::sha256_two_pow_6)) -
FF(64));
417 using View =
typename std::tuple_element_t<55, ContainerOverSubrelations>::View;
418 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
419 (
static_cast<View
>(in.get(C::sha256_e)) - (
static_cast<View
>(in.get(C::sha256_lhs_e_11)) *
FF(2048) +
420 static_cast<View
>(in.get(C::sha256_rhs_e_11))));
424 using View =
typename std::tuple_element_t<56, ContainerOverSubrelations>::View;
425 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
426 (
static_cast<View
>(in.get(C::sha256_e_rotr_11)) -
427 (
static_cast<View
>(in.get(C::sha256_rhs_e_11)) *
FF(2097152) +
428 static_cast<View
>(in.get(C::sha256_lhs_e_11))));
432 using View =
typename std::tuple_element_t<57, ContainerOverSubrelations>::View;
433 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
434 (
static_cast<View
>(in.get(C::sha256_two_pow_11)) -
FF(2048));
438 using View =
typename std::tuple_element_t<58, ContainerOverSubrelations>::View;
440 static_cast<View
>(in.get(C::sha256_perform_round)) *
441 (
static_cast<View
>(in.get(C::sha256_e)) - (
static_cast<View
>(in.get(C::sha256_lhs_e_25)) *
FF(33554432) +
442 static_cast<View
>(in.get(C::sha256_rhs_e_25))));
446 using View =
typename std::tuple_element_t<59, ContainerOverSubrelations>::View;
448 static_cast<View
>(in.get(C::sha256_perform_round)) *
449 (
static_cast<View
>(in.get(C::sha256_e_rotr_25)) -
450 (
static_cast<View
>(in.get(C::sha256_rhs_e_25)) *
FF(128) +
static_cast<View
>(in.get(C::sha256_lhs_e_25))));
454 using View =
typename std::tuple_element_t<60, ContainerOverSubrelations>::View;
455 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
456 (
static_cast<View
>(in.get(C::sha256_two_pow_25)) -
FF(33554432));
460 using View =
typename std::tuple_element_t<61, ContainerOverSubrelations>::View;
462 static_cast<View
>(in.get(C::sha256_perform_round)) *
463 ((
static_cast<View
>(in.get(C::sha256_e)) +
static_cast<View
>(in.get(C::sha256_not_e))) -
FF(4294967295UL));
467 using View =
typename std::tuple_element_t<62, ContainerOverSubrelations>::View;
468 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
469 (
static_cast<View
>(in.get(C::sha256_a)) - (
static_cast<View
>(in.get(C::sha256_lhs_a_2)) *
FF(4) +
470 static_cast<View
>(in.get(C::sha256_rhs_a_2))));
474 using View =
typename std::tuple_element_t<63, ContainerOverSubrelations>::View;
475 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
476 (
static_cast<View
>(in.get(C::sha256_a_rotr_2)) -
477 (
static_cast<View
>(in.get(C::sha256_rhs_a_2)) *
FF(1073741824) +
478 static_cast<View
>(in.get(C::sha256_lhs_a_2))));
482 using View =
typename std::tuple_element_t<64, ContainerOverSubrelations>::View;
483 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
484 (
static_cast<View
>(in.get(C::sha256_two_pow_2)) -
FF(4));
488 using View =
typename std::tuple_element_t<65, ContainerOverSubrelations>::View;
489 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
490 (
static_cast<View
>(in.get(C::sha256_a)) - (
static_cast<View
>(in.get(C::sha256_lhs_a_13)) *
FF(8192) +
491 static_cast<View
>(in.get(C::sha256_rhs_a_13))));
495 using View =
typename std::tuple_element_t<66, ContainerOverSubrelations>::View;
496 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
497 (
static_cast<View
>(in.get(C::sha256_a_rotr_13)) -
498 (
static_cast<View
>(in.get(C::sha256_rhs_a_13)) *
FF(524288) +
499 static_cast<View
>(in.get(C::sha256_lhs_a_13))));
503 using View =
typename std::tuple_element_t<67, ContainerOverSubrelations>::View;
504 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
505 (
static_cast<View
>(in.get(C::sha256_two_pow_13)) -
FF(8192));
509 using View =
typename std::tuple_element_t<68, ContainerOverSubrelations>::View;
511 static_cast<View
>(in.get(C::sha256_perform_round)) *
512 (
static_cast<View
>(in.get(C::sha256_a)) - (
static_cast<View
>(in.get(C::sha256_lhs_a_22)) *
FF(4194304) +
513 static_cast<View
>(in.get(C::sha256_rhs_a_22))));
517 using View =
typename std::tuple_element_t<69, ContainerOverSubrelations>::View;
518 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
519 (
static_cast<View
>(in.get(C::sha256_a_rotr_22)) -
520 (
static_cast<View
>(in.get(C::sha256_rhs_a_22)) *
FF(1024) +
521 static_cast<View
>(in.get(C::sha256_lhs_a_22))));
525 using View =
typename std::tuple_element_t<70, ContainerOverSubrelations>::View;
526 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
527 (
static_cast<View
>(in.get(C::sha256_two_pow_22)) -
FF(4194304));
531 using View =
typename std::tuple_element_t<71, ContainerOverSubrelations>::View;
532 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
533 ((
static_cast<View
>(in.get(C::sha256_next_a_lhs)) *
FF(4294967296UL) +
534 static_cast<View
>(in.get(C::sha256_next_a_rhs))) -
535 CView(sha256_NEXT_A));
539 using View =
typename std::tuple_element_t<72, ContainerOverSubrelations>::View;
540 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
541 ((
static_cast<View
>(in.get(C::sha256_next_e_lhs)) *
FF(4294967296UL) +
542 static_cast<View
>(in.get(C::sha256_next_e_rhs))) -
543 CView(sha256_NEXT_E));
547 using View =
typename std::tuple_element_t<73, ContainerOverSubrelations>::View;
548 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
549 (
static_cast<View
>(in.get(C::sha256_a_shift)) -
static_cast<View
>(in.get(C::sha256_next_a_rhs)));
553 using View =
typename std::tuple_element_t<74, ContainerOverSubrelations>::View;
554 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
555 (
static_cast<View
>(in.get(C::sha256_b_shift)) -
static_cast<View
>(in.get(C::sha256_a)));
559 using View =
typename std::tuple_element_t<75, ContainerOverSubrelations>::View;
560 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
561 (
static_cast<View
>(in.get(C::sha256_c_shift)) -
static_cast<View
>(in.get(C::sha256_b)));
565 using View =
typename std::tuple_element_t<76, ContainerOverSubrelations>::View;
566 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
567 (
static_cast<View
>(in.get(C::sha256_d_shift)) -
static_cast<View
>(in.get(C::sha256_c)));
571 using View =
typename std::tuple_element_t<77, ContainerOverSubrelations>::View;
572 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
573 (
static_cast<View
>(in.get(C::sha256_e_shift)) -
static_cast<View
>(in.get(C::sha256_next_e_rhs)));
577 using View =
typename std::tuple_element_t<78, ContainerOverSubrelations>::View;
578 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
579 (
static_cast<View
>(in.get(C::sha256_f_shift)) -
static_cast<View
>(in.get(C::sha256_e)));
583 using View =
typename std::tuple_element_t<79, ContainerOverSubrelations>::View;
584 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
585 (
static_cast<View
>(in.get(C::sha256_g_shift)) -
static_cast<View
>(in.get(C::sha256_f)));
589 using View =
typename std::tuple_element_t<80, ContainerOverSubrelations>::View;
590 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
591 (
static_cast<View
>(in.get(C::sha256_h_shift)) -
static_cast<View
>(in.get(C::sha256_g)));
595 using View =
typename std::tuple_element_t<81, ContainerOverSubrelations>::View;
596 auto tmp =
CView(sha256_LAST) *
597 (
CView(sha256_OUT_A) - (
static_cast<View
>(in.get(C::sha256_output_a_lhs)) *
FF(4294967296UL) +
598 static_cast<View
>(in.get(C::sha256_output_a_rhs))));
602 using View =
typename std::tuple_element_t<82, ContainerOverSubrelations>::View;
603 auto tmp =
CView(sha256_LAST) *
604 (
CView(sha256_OUT_B) - (
static_cast<View
>(in.get(C::sha256_output_b_lhs)) *
FF(4294967296UL) +
605 static_cast<View
>(in.get(C::sha256_output_b_rhs))));
609 using View =
typename std::tuple_element_t<83, ContainerOverSubrelations>::View;
610 auto tmp =
CView(sha256_LAST) *
611 (
CView(sha256_OUT_C) - (
static_cast<View
>(in.get(C::sha256_output_c_lhs)) *
FF(4294967296UL) +
612 static_cast<View
>(in.get(C::sha256_output_c_rhs))));
616 using View =
typename std::tuple_element_t<84, ContainerOverSubrelations>::View;
617 auto tmp =
CView(sha256_LAST) *
618 (
CView(sha256_OUT_D) - (
static_cast<View
>(in.get(C::sha256_output_d_lhs)) *
FF(4294967296UL) +
619 static_cast<View
>(in.get(C::sha256_output_d_rhs))));
623 using View =
typename std::tuple_element_t<85, ContainerOverSubrelations>::View;
624 auto tmp =
CView(sha256_LAST) *
625 (
CView(sha256_OUT_E) - (
static_cast<View
>(in.get(C::sha256_output_e_lhs)) *
FF(4294967296UL) +
626 static_cast<View
>(in.get(C::sha256_output_e_rhs))));
630 using View =
typename std::tuple_element_t<86, ContainerOverSubrelations>::View;
631 auto tmp =
CView(sha256_LAST) *
632 (
CView(sha256_OUT_F) - (
static_cast<View
>(in.get(C::sha256_output_f_lhs)) *
FF(4294967296UL) +
633 static_cast<View
>(in.get(C::sha256_output_f_rhs))));
637 using View =
typename std::tuple_element_t<87, ContainerOverSubrelations>::View;
638 auto tmp =
CView(sha256_LAST) *
639 (
CView(sha256_OUT_G) - (
static_cast<View
>(in.get(C::sha256_output_g_lhs)) *
FF(4294967296UL) +
640 static_cast<View
>(in.get(C::sha256_output_g_rhs))));
644 using View =
typename std::tuple_element_t<88, ContainerOverSubrelations>::View;
645 auto tmp =
CView(sha256_LAST) *
646 (
CView(sha256_OUT_H) - (
static_cast<View
>(in.get(C::sha256_output_h_lhs)) *
FF(4294967296UL) +
647 static_cast<View
>(in.get(C::sha256_output_h_rhs))));