30 const auto sha256_OUT_C = in.get(C::sha256_c) + in.get(C::sha256_init_c);
31 const auto sha256_OUT_D = in.get(C::sha256_d) + in.get(C::sha256_init_d);
32 const auto sha256_OUT_E = in.get(C::sha256_e) + in.get(C::sha256_init_e);
33 const auto sha256_OUT_F = in.get(C::sha256_f) + in.get(C::sha256_init_f);
34 const auto sha256_OUT_G = in.get(C::sha256_g) + in.get(C::sha256_init_g);
35 const auto sha256_OUT_H = in.get(C::sha256_h) + in.get(C::sha256_init_h);
36 const auto sha256_LATCH_CONDITION = in.get(C::sha256_end) + in.get(C::precomputed_first_row);
39 using View =
typename std::tuple_element_t<0, ContainerOverSubrelations>::View;
40 auto tmp = (
static_cast<View
>(in.get(C::sha256_perform_round)) -
41 (
FF(1) -
CView(sha256_LATCH_CONDITION)) *
CView(sha256_SEL_NO_ERR));
45 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
46 auto tmp = (
static_cast<View
>(in.get(C::sha256_last)) -
47 (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
static_cast<View
>(in.get(C::sha256_end)));
51 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
52 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
53 (
static_cast<View
>(in.get(C::sha256_xor_op_id)) -
CView(constants_AVM_BITWISE_XOR_OP_ID));
57 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
58 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
59 (
static_cast<View
>(in.get(C::sha256_and_op_id)) -
CView(constants_AVM_BITWISE_AND_OP_ID));
63 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
64 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) *
65 (
static_cast<View
>(in.get(C::sha256_rounds_remaining)) -
CView(sha256_NUM_ROUNDS));
69 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
70 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
71 ((
static_cast<View
>(in.get(C::sha256_rounds_remaining)) -
72 static_cast<View
>(in.get(C::sha256_rounds_remaining_shift))) -
77 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
78 auto tmp =
CView(sha256_SEL_NO_ERR) *
79 (
static_cast<View
>(in.get(C::sha256_round_count)) -
80 (
CView(sha256_NUM_ROUNDS) -
static_cast<View
>(in.get(C::sha256_rounds_remaining))));
84 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
86 CView(sha256_SEL_NO_ERR) * ((
static_cast<View
>(in.get(C::sha256_rounds_remaining)) *
87 (
static_cast<View
>(in.get(C::sha256_end)) *
88 (
FF(1) -
static_cast<View
>(in.get(C::sha256_rounds_remaining_inv))) +
89 static_cast<View
>(in.get(C::sha256_rounds_remaining_inv))) -
91 static_cast<View
>(in.get(C::sha256_end)));
95 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
96 auto tmp =
CView(sha256_SEL_NO_ERR) * (
static_cast<View
>(in.get(C::sha256_rng_chk_32)) -
FF(32));
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_a)) -
static_cast<View
>(in.get(C::sha256_init_a)));
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_b)) -
static_cast<View
>(in.get(C::sha256_init_b)));
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_c)) -
static_cast<View
>(in.get(C::sha256_init_c)));
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_d)) -
static_cast<View
>(in.get(C::sha256_init_d)));
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_e)) -
static_cast<View
>(in.get(C::sha256_init_e)));
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_f)) -
static_cast<View
>(in.get(C::sha256_init_f)));
136 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
137 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
138 (
static_cast<View
>(in.get(C::sha256_g)) -
static_cast<View
>(in.get(C::sha256_init_g)));
142 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
143 auto tmp =
static_cast<View
>(in.get(C::sha256_start)) * (
FF(1) -
static_cast<View
>(in.get(C::sha256_err))) *
144 (
static_cast<View
>(in.get(C::sha256_h)) -
static_cast<View
>(in.get(C::sha256_init_h)));
148 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
149 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
150 (
static_cast<View
>(in.get(C::sha256_init_a_shift)) -
static_cast<View
>(in.get(C::sha256_init_a)));
154 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
155 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
156 (
static_cast<View
>(in.get(C::sha256_init_b_shift)) -
static_cast<View
>(in.get(C::sha256_init_b)));
160 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
161 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
162 (
static_cast<View
>(in.get(C::sha256_init_c_shift)) -
static_cast<View
>(in.get(C::sha256_init_c)));
166 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
167 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
168 (
static_cast<View
>(in.get(C::sha256_init_d_shift)) -
static_cast<View
>(in.get(C::sha256_init_d)));
172 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
173 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
174 (
static_cast<View
>(in.get(C::sha256_init_e_shift)) -
static_cast<View
>(in.get(C::sha256_init_e)));
178 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
179 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
180 (
static_cast<View
>(in.get(C::sha256_init_f_shift)) -
static_cast<View
>(in.get(C::sha256_init_f)));
184 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
185 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
186 (
static_cast<View
>(in.get(C::sha256_init_g_shift)) -
static_cast<View
>(in.get(C::sha256_init_g)));
190 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
191 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
192 (
static_cast<View
>(in.get(C::sha256_init_h_shift)) -
static_cast<View
>(in.get(C::sha256_init_h)));
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_w0_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w1)));
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_w1_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w2)));
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_w2_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w3)));
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_w3_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w4)));
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_w4_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w5)));
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_w5_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w6)));
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_w6_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w7)));
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_w7_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w8)));
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_w8_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w9)));
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_w9_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w10)));
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_w10_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w11)));
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_w11_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w12)));
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_w12_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w13)));
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_w13_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w14)));
294 using View =
typename std::tuple_element_t<39, ContainerOverSubrelations>::View;
296 static_cast<View
>(in.get(C::sha256_perform_round)) *
297 (
static_cast<View
>(in.get(C::sha256_helper_w14_shift)) -
static_cast<View
>(in.get(C::sha256_helper_w15)));
301 using View =
typename std::tuple_element_t<40, ContainerOverSubrelations>::View;
302 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
303 (
static_cast<View
>(in.get(C::sha256_helper_w15_shift)) -
static_cast<View
>(in.get(C::sha256_w)));
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_perform_round)) *
310 (
FF(1) -
static_cast<View
>(in.get(C::sha256_sel_is_input_round))));
314 using View =
typename std::tuple_element_t<42, ContainerOverSubrelations>::View;
315 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
316 ((
static_cast<View
>(in.get(C::sha256_computed_w_lhs)) *
FF(4294967296UL) +
317 static_cast<View
>(in.get(C::sha256_computed_w_rhs))) -
318 CView(sha256_COMPUTED_W));
322 using View =
typename std::tuple_element_t<43, ContainerOverSubrelations>::View;
323 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
324 (
static_cast<View
>(in.get(C::sha256_w)) -
static_cast<View
>(in.get(C::sha256_computed_w_rhs)));
328 using View =
typename std::tuple_element_t<44, ContainerOverSubrelations>::View;
329 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
330 ((
static_cast<View
>(in.get(C::sha256_helper_w1)) -
331 static_cast<View
>(in.get(C::sha256_w_15_rotr_7)) *
FF(128)) +
332 static_cast<View
>(in.get(C::sha256_rhs_w_7)) *
FF(4294967295UL));
336 using View =
typename std::tuple_element_t<45, ContainerOverSubrelations>::View;
337 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
338 (
static_cast<View
>(in.get(C::sha256_rng_chk_7)) -
FF(7));
342 using View =
typename std::tuple_element_t<46, ContainerOverSubrelations>::View;
343 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
344 ((
static_cast<View
>(in.get(C::sha256_helper_w1)) -
345 static_cast<View
>(in.get(C::sha256_w_15_rotr_18)) *
FF(262144)) +
346 static_cast<View
>(in.get(C::sha256_rhs_w_18)) *
FF(4294967295UL));
350 using View =
typename std::tuple_element_t<47, ContainerOverSubrelations>::View;
351 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
352 (
static_cast<View
>(in.get(C::sha256_rng_chk_18)) -
FF(18));
356 using View =
typename std::tuple_element_t<48, ContainerOverSubrelations>::View;
358 static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
359 (
static_cast<View
>(in.get(C::sha256_helper_w1)) -
360 (
static_cast<View
>(in.get(C::sha256_lhs_w_3)) *
FF(8) +
static_cast<View
>(in.get(C::sha256_rhs_w_3))));
364 using View =
typename std::tuple_element_t<49, ContainerOverSubrelations>::View;
365 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
366 (
static_cast<View
>(in.get(C::sha256_rng_chk_3)) -
FF(3));
370 using View =
typename std::tuple_element_t<50, ContainerOverSubrelations>::View;
371 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
372 ((
static_cast<View
>(in.get(C::sha256_helper_w14)) -
373 static_cast<View
>(in.get(C::sha256_w_2_rotr_17)) *
FF(131072)) +
374 static_cast<View
>(in.get(C::sha256_rhs_w_17)) *
FF(4294967295UL));
378 using View =
typename std::tuple_element_t<51, ContainerOverSubrelations>::View;
379 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
380 (
static_cast<View
>(in.get(C::sha256_rng_chk_17)) -
FF(17));
384 using View =
typename std::tuple_element_t<52, ContainerOverSubrelations>::View;
385 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
386 ((
static_cast<View
>(in.get(C::sha256_helper_w14)) -
387 static_cast<View
>(in.get(C::sha256_w_2_rotr_19)) *
FF(524288)) +
388 static_cast<View
>(in.get(C::sha256_rhs_w_19)) *
FF(4294967295UL));
392 using View =
typename std::tuple_element_t<53, ContainerOverSubrelations>::View;
393 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
394 (
static_cast<View
>(in.get(C::sha256_rng_chk_19)) -
FF(19));
398 using View =
typename std::tuple_element_t<54, ContainerOverSubrelations>::View;
399 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
400 (
static_cast<View
>(in.get(C::sha256_helper_w14)) -
401 (
static_cast<View
>(in.get(C::sha256_lhs_w_10)) *
FF(1024) +
402 static_cast<View
>(in.get(C::sha256_rhs_w_10))));
406 using View =
typename std::tuple_element_t<55, ContainerOverSubrelations>::View;
407 auto tmp =
static_cast<View
>(in.get(C::sha256_sel_compute_w)) *
408 (
static_cast<View
>(in.get(C::sha256_rng_chk_10)) -
FF(10));
412 using View =
typename std::tuple_element_t<56, ContainerOverSubrelations>::View;
413 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
414 ((
static_cast<View
>(in.get(C::sha256_e)) -
static_cast<View
>(in.get(C::sha256_e_rotr_6)) *
FF(64)) +
415 static_cast<View
>(in.get(C::sha256_rhs_e_6)) *
FF(4294967295UL));
419 using View =
typename std::tuple_element_t<57, ContainerOverSubrelations>::View;
420 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
421 (
static_cast<View
>(in.get(C::sha256_rng_chk_6)) -
FF(6));
425 using View =
typename std::tuple_element_t<58, ContainerOverSubrelations>::View;
427 static_cast<View
>(in.get(C::sha256_perform_round)) *
428 ((
static_cast<View
>(in.get(C::sha256_e)) -
static_cast<View
>(in.get(C::sha256_e_rotr_11)) *
FF(2048)) +
429 static_cast<View
>(in.get(C::sha256_rhs_e_11)) *
FF(4294967295UL));
433 using View =
typename std::tuple_element_t<59, ContainerOverSubrelations>::View;
434 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
435 (
static_cast<View
>(in.get(C::sha256_rng_chk_11)) -
FF(11));
439 using View =
typename std::tuple_element_t<60, ContainerOverSubrelations>::View;
441 static_cast<View
>(in.get(C::sha256_perform_round)) *
442 ((
static_cast<View
>(in.get(C::sha256_e)) -
static_cast<View
>(in.get(C::sha256_e_rotr_25)) *
FF(33554432)) +
443 static_cast<View
>(in.get(C::sha256_rhs_e_25)) *
FF(4294967295UL));
447 using View =
typename std::tuple_element_t<61, ContainerOverSubrelations>::View;
448 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
449 (
static_cast<View
>(in.get(C::sha256_rng_chk_25)) -
FF(25));
453 using View =
typename std::tuple_element_t<62, ContainerOverSubrelations>::View;
455 static_cast<View
>(in.get(C::sha256_perform_round)) *
456 ((
static_cast<View
>(in.get(C::sha256_e)) +
static_cast<View
>(in.get(C::sha256_not_e))) -
FF(4294967295UL));
460 using View =
typename std::tuple_element_t<63, ContainerOverSubrelations>::View;
461 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
462 ((
static_cast<View
>(in.get(C::sha256_a)) -
static_cast<View
>(in.get(C::sha256_a_rotr_2)) *
FF(4)) +
463 static_cast<View
>(in.get(C::sha256_rhs_a_2)) *
FF(4294967295UL));
467 using View =
typename std::tuple_element_t<64, ContainerOverSubrelations>::View;
468 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
469 (
static_cast<View
>(in.get(C::sha256_rng_chk_2)) -
FF(2));
473 using View =
typename std::tuple_element_t<65, ContainerOverSubrelations>::View;
475 static_cast<View
>(in.get(C::sha256_perform_round)) *
476 ((
static_cast<View
>(in.get(C::sha256_a)) -
static_cast<View
>(in.get(C::sha256_a_rotr_13)) *
FF(8192)) +
477 static_cast<View
>(in.get(C::sha256_rhs_a_13)) *
FF(4294967295UL));
481 using View =
typename std::tuple_element_t<66, ContainerOverSubrelations>::View;
482 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
483 (
static_cast<View
>(in.get(C::sha256_rng_chk_13)) -
FF(13));
487 using View =
typename std::tuple_element_t<67, ContainerOverSubrelations>::View;
489 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_a_rotr_22)) *
FF(4194304)) +
491 static_cast<View
>(in.get(C::sha256_rhs_a_22)) *
FF(4294967295UL));
495 using View =
typename std::tuple_element_t<68, ContainerOverSubrelations>::View;
496 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
497 (
static_cast<View
>(in.get(C::sha256_rng_chk_22)) -
FF(22));
501 using View =
typename std::tuple_element_t<69, ContainerOverSubrelations>::View;
502 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
503 ((
static_cast<View
>(in.get(C::sha256_next_a_lhs)) *
FF(4294967296UL) +
504 static_cast<View
>(in.get(C::sha256_next_a_rhs))) -
505 CView(sha256_NEXT_A));
509 using View =
typename std::tuple_element_t<70, ContainerOverSubrelations>::View;
510 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
511 ((
static_cast<View
>(in.get(C::sha256_next_e_lhs)) *
FF(4294967296UL) +
512 static_cast<View
>(in.get(C::sha256_next_e_rhs))) -
513 CView(sha256_NEXT_E));
517 using View =
typename std::tuple_element_t<71, ContainerOverSubrelations>::View;
518 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
519 (
static_cast<View
>(in.get(C::sha256_a_shift)) -
static_cast<View
>(in.get(C::sha256_next_a_rhs)));
523 using View =
typename std::tuple_element_t<72, ContainerOverSubrelations>::View;
524 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
525 (
static_cast<View
>(in.get(C::sha256_b_shift)) -
static_cast<View
>(in.get(C::sha256_a)));
529 using View =
typename std::tuple_element_t<73, ContainerOverSubrelations>::View;
530 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
531 (
static_cast<View
>(in.get(C::sha256_c_shift)) -
static_cast<View
>(in.get(C::sha256_b)));
535 using View =
typename std::tuple_element_t<74, ContainerOverSubrelations>::View;
536 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
537 (
static_cast<View
>(in.get(C::sha256_d_shift)) -
static_cast<View
>(in.get(C::sha256_c)));
541 using View =
typename std::tuple_element_t<75, ContainerOverSubrelations>::View;
542 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
543 (
static_cast<View
>(in.get(C::sha256_e_shift)) -
static_cast<View
>(in.get(C::sha256_next_e_rhs)));
547 using View =
typename std::tuple_element_t<76, ContainerOverSubrelations>::View;
548 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
549 (
static_cast<View
>(in.get(C::sha256_f_shift)) -
static_cast<View
>(in.get(C::sha256_e)));
553 using View =
typename std::tuple_element_t<77, ContainerOverSubrelations>::View;
554 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
555 (
static_cast<View
>(in.get(C::sha256_g_shift)) -
static_cast<View
>(in.get(C::sha256_f)));
559 using View =
typename std::tuple_element_t<78, ContainerOverSubrelations>::View;
560 auto tmp =
static_cast<View
>(in.get(C::sha256_perform_round)) *
561 (
static_cast<View
>(in.get(C::sha256_h_shift)) -
static_cast<View
>(in.get(C::sha256_g)));
565 using View =
typename std::tuple_element_t<79, ContainerOverSubrelations>::View;
566 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
567 (
CView(sha256_OUT_A) - (
static_cast<View
>(in.get(C::sha256_output_a_lhs)) *
FF(4294967296UL) +
568 static_cast<View
>(in.get(C::sha256_output_a_rhs))));
572 using View =
typename std::tuple_element_t<80, ContainerOverSubrelations>::View;
573 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
574 (
CView(sha256_OUT_B) - (
static_cast<View
>(in.get(C::sha256_output_b_lhs)) *
FF(4294967296UL) +
575 static_cast<View
>(in.get(C::sha256_output_b_rhs))));
579 using View =
typename std::tuple_element_t<81, ContainerOverSubrelations>::View;
580 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
581 (
CView(sha256_OUT_C) - (
static_cast<View
>(in.get(C::sha256_output_c_lhs)) *
FF(4294967296UL) +
582 static_cast<View
>(in.get(C::sha256_output_c_rhs))));
586 using View =
typename std::tuple_element_t<82, ContainerOverSubrelations>::View;
587 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
588 (
CView(sha256_OUT_D) - (
static_cast<View
>(in.get(C::sha256_output_d_lhs)) *
FF(4294967296UL) +
589 static_cast<View
>(in.get(C::sha256_output_d_rhs))));
593 using View =
typename std::tuple_element_t<83, ContainerOverSubrelations>::View;
594 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
595 (
CView(sha256_OUT_E) - (
static_cast<View
>(in.get(C::sha256_output_e_lhs)) *
FF(4294967296UL) +
596 static_cast<View
>(in.get(C::sha256_output_e_rhs))));
600 using View =
typename std::tuple_element_t<84, ContainerOverSubrelations>::View;
601 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
602 (
CView(sha256_OUT_F) - (
static_cast<View
>(in.get(C::sha256_output_f_lhs)) *
FF(4294967296UL) +
603 static_cast<View
>(in.get(C::sha256_output_f_rhs))));
607 using View =
typename std::tuple_element_t<85, ContainerOverSubrelations>::View;
608 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
609 (
CView(sha256_OUT_G) - (
static_cast<View
>(in.get(C::sha256_output_g_lhs)) *
FF(4294967296UL) +
610 static_cast<View
>(in.get(C::sha256_output_g_rhs))));
614 using View =
typename std::tuple_element_t<86, ContainerOverSubrelations>::View;
615 auto tmp =
static_cast<View
>(in.get(C::sha256_last)) *
616 (
CView(sha256_OUT_H) - (
static_cast<View
>(in.get(C::sha256_output_h_lhs)) *
FF(4294967296UL) +
617 static_cast<View
>(in.get(C::sha256_output_h_rhs))));
621 using View =
typename std::tuple_element_t<87, ContainerOverSubrelations>::View;
622 auto tmp =
static_cast<View
>(in.get(C::sha256_output_a_lhs)) *
623 (
static_cast<View
>(in.get(C::sha256_output_a_lhs)) -
FF(1));
627 using View =
typename std::tuple_element_t<88, ContainerOverSubrelations>::View;
628 auto tmp =
static_cast<View
>(in.get(C::sha256_output_b_lhs)) *
629 (
static_cast<View
>(in.get(C::sha256_output_b_lhs)) -
FF(1));
633 using View =
typename std::tuple_element_t<89, ContainerOverSubrelations>::View;
634 auto tmp =
static_cast<View
>(in.get(C::sha256_output_c_lhs)) *
635 (
static_cast<View
>(in.get(C::sha256_output_c_lhs)) -
FF(1));
639 using View =
typename std::tuple_element_t<90, ContainerOverSubrelations>::View;
640 auto tmp =
static_cast<View
>(in.get(C::sha256_output_d_lhs)) *
641 (
static_cast<View
>(in.get(C::sha256_output_d_lhs)) -
FF(1));
645 using View =
typename std::tuple_element_t<91, ContainerOverSubrelations>::View;
646 auto tmp =
static_cast<View
>(in.get(C::sha256_output_e_lhs)) *
647 (
static_cast<View
>(in.get(C::sha256_output_e_lhs)) -
FF(1));
651 using View =
typename std::tuple_element_t<92, ContainerOverSubrelations>::View;
652 auto tmp =
static_cast<View
>(in.get(C::sha256_output_f_lhs)) *
653 (
static_cast<View
>(in.get(C::sha256_output_f_lhs)) -
FF(1));
657 using View =
typename std::tuple_element_t<93, ContainerOverSubrelations>::View;
658 auto tmp =
static_cast<View
>(in.get(C::sha256_output_g_lhs)) *
659 (
static_cast<View
>(in.get(C::sha256_output_g_lhs)) -
FF(1));
663 using View =
typename std::tuple_element_t<94, ContainerOverSubrelations>::View;
664 auto tmp =
static_cast<View
>(in.get(C::sha256_output_h_lhs)) *
665 (
static_cast<View
>(in.get(C::sha256_output_h_lhs)) -
FF(1));