33 const auto keccakf1600_POW_ROT_LEN_04 =
FF(262144);
34 const auto keccakf1600_POW_ROT_64_MIN_LEN_04 =
FF(70368744177664UL);
35 const auto keccakf1600_ROT_LEN_10 =
FF(1);
36 const auto keccakf1600_POW_ROT_LEN_10 =
FF(2);
37 const auto keccakf1600_POW_ROT_64_MIN_LEN_10 =
FF(
uint256_t{ 9223372036854775808UL, 0UL, 0UL, 0UL });
38 const auto keccakf1600_ROT_LEN_11 =
FF(44);
39 const auto keccakf1600_POW_ROT_LEN_11 =
FF(17592186044416UL);
40 const auto keccakf1600_POW_ROT_64_MIN_LEN_11 =
FF(1048576);
41 const auto keccakf1600_ROT_LEN_12 =
FF(10);
42 const auto keccakf1600_POW_ROT_LEN_12 =
FF(1024);
43 const auto keccakf1600_POW_ROT_64_MIN_LEN_12 =
FF(18014398509481984UL);
44 const auto keccakf1600_ROT_LEN_13 =
FF(45);
45 const auto keccakf1600_POW_ROT_LEN_13 =
FF(35184372088832UL);
46 const auto keccakf1600_POW_ROT_64_MIN_LEN_13 =
FF(524288);
47 const auto keccakf1600_ROT_LEN_14 =
FF(2);
48 const auto keccakf1600_POW_ROT_LEN_14 =
FF(4);
49 const auto keccakf1600_POW_ROT_64_MIN_LEN_14 =
FF(4611686018427387904UL);
50 const auto keccakf1600_ROT_LEN_20 =
FF(62);
51 const auto keccakf1600_POW_ROT_LEN_20 =
FF(4611686018427387904UL);
52 const auto keccakf1600_POW_ROT_64_MIN_LEN_20 =
FF(4);
53 const auto keccakf1600_ROT_LEN_21 =
FF(6);
54 const auto keccakf1600_POW_ROT_LEN_21 =
FF(64);
55 const auto keccakf1600_POW_ROT_64_MIN_LEN_21 =
FF(288230376151711744UL);
56 const auto keccakf1600_ROT_LEN_22 =
FF(43);
57 const auto keccakf1600_POW_ROT_LEN_22 =
FF(8796093022208UL);
58 const auto keccakf1600_POW_ROT_64_MIN_LEN_22 =
FF(2097152);
59 const auto keccakf1600_ROT_LEN_23 =
FF(15);
60 const auto keccakf1600_POW_ROT_LEN_23 =
FF(32768);
61 const auto keccakf1600_POW_ROT_64_MIN_LEN_23 =
FF(562949953421312UL);
62 const auto keccakf1600_ROT_LEN_24 =
FF(61);
63 const auto keccakf1600_POW_ROT_LEN_24 =
FF(2305843009213693952UL);
64 const auto keccakf1600_POW_ROT_64_MIN_LEN_24 =
FF(8);
65 const auto keccakf1600_ROT_LEN_30 =
FF(28);
66 const auto keccakf1600_POW_ROT_LEN_30 =
FF(268435456);
67 const auto keccakf1600_POW_ROT_64_MIN_LEN_30 =
FF(68719476736UL);
68 const auto keccakf1600_ROT_LEN_31 =
FF(55);
69 const auto keccakf1600_POW_ROT_LEN_31 =
FF(36028797018963968UL);
70 const auto keccakf1600_POW_ROT_64_MIN_LEN_31 =
FF(512);
71 const auto keccakf1600_ROT_LEN_32 =
FF(25);
72 const auto keccakf1600_POW_ROT_LEN_32 =
FF(33554432);
73 const auto keccakf1600_POW_ROT_64_MIN_LEN_32 =
FF(549755813888UL);
74 const auto keccakf1600_ROT_LEN_33 =
FF(21);
75 const auto keccakf1600_POW_ROT_LEN_33 =
FF(2097152);
76 const auto keccakf1600_POW_ROT_64_MIN_LEN_33 =
FF(8796093022208UL);
77 const auto keccakf1600_ROT_LEN_34 =
FF(56);
78 const auto keccakf1600_POW_ROT_LEN_34 =
FF(72057594037927936UL);
79 const auto keccakf1600_POW_ROT_64_MIN_LEN_34 =
FF(256);
80 const auto keccakf1600_ROT_LEN_40 =
FF(27);
81 const auto keccakf1600_POW_ROT_LEN_40 =
FF(134217728);
82 const auto keccakf1600_POW_ROT_64_MIN_LEN_40 =
FF(137438953472UL);
83 const auto keccakf1600_ROT_LEN_41 =
FF(20);
84 const auto keccakf1600_POW_ROT_LEN_41 =
FF(1048576);
85 const auto keccakf1600_POW_ROT_64_MIN_LEN_41 =
FF(17592186044416UL);
86 const auto keccakf1600_ROT_LEN_42 =
FF(39);
87 const auto keccakf1600_POW_ROT_LEN_42 =
FF(549755813888UL);
88 const auto keccakf1600_POW_ROT_64_MIN_LEN_42 =
FF(33554432);
89 const auto keccakf1600_ROT_LEN_43 =
FF(8);
90 const auto keccakf1600_POW_ROT_LEN_43 =
FF(256);
91 const auto keccakf1600_POW_ROT_64_MIN_LEN_43 =
FF(72057594037927936UL);
92 const auto keccakf1600_ROT_LEN_44 =
FF(14);
93 const auto keccakf1600_POW_ROT_LEN_44 =
FF(16384);
94 const auto keccakf1600_POW_ROT_64_MIN_LEN_44 =
FF(1125899906842624UL);
95 const auto keccakf1600_STATE_RHO_00 = in.get(C::keccakf1600_state_theta_00);
96 const auto keccakf1600_STATE_PI_00 = keccakf1600_STATE_RHO_00;
97 const auto keccakf1600_STATE_PI_01 = in.get(C::keccakf1600_state_rho_30);
98 const auto keccakf1600_STATE_PI_02 = in.get(C::keccakf1600_state_rho_10);
99 const auto keccakf1600_STATE_PI_03 = in.get(C::keccakf1600_state_rho_40);
100 const auto keccakf1600_STATE_PI_04 = in.get(C::keccakf1600_state_rho_20);
101 const auto keccakf1600_STATE_PI_10 = in.get(C::keccakf1600_state_rho_11);
102 const auto keccakf1600_STATE_PI_11 = in.get(C::keccakf1600_state_rho_41);
103 const auto keccakf1600_STATE_PI_12 = in.get(C::keccakf1600_state_rho_21);
104 const auto keccakf1600_STATE_PI_13 = in.get(C::keccakf1600_state_rho_01);
105 const auto keccakf1600_STATE_PI_14 = in.get(C::keccakf1600_state_rho_31);
106 const auto keccakf1600_STATE_PI_20 = in.get(C::keccakf1600_state_rho_22);
107 const auto keccakf1600_STATE_PI_21 = in.get(C::keccakf1600_state_rho_02);
108 const auto keccakf1600_STATE_PI_22 = in.get(C::keccakf1600_state_rho_32);
109 const auto keccakf1600_STATE_PI_23 = in.get(C::keccakf1600_state_rho_12);
110 const auto keccakf1600_STATE_PI_24 = in.get(C::keccakf1600_state_rho_42);
111 const auto keccakf1600_STATE_PI_30 = in.get(C::keccakf1600_state_rho_33);
112 const auto keccakf1600_STATE_PI_31 = in.get(C::keccakf1600_state_rho_13);
113 const auto keccakf1600_STATE_PI_32 = in.get(C::keccakf1600_state_rho_43);
114 const auto keccakf1600_STATE_PI_33 = in.get(C::keccakf1600_state_rho_23);
115 const auto keccakf1600_STATE_PI_34 = in.get(C::keccakf1600_state_rho_03);
116 const auto keccakf1600_STATE_PI_40 = in.get(C::keccakf1600_state_rho_44);
117 const auto keccakf1600_STATE_PI_41 = in.get(C::keccakf1600_state_rho_24);
118 const auto keccakf1600_STATE_PI_42 = in.get(C::keccakf1600_state_rho_04);
119 const auto keccakf1600_STATE_PI_43 = in.get(C::keccakf1600_state_rho_34);
120 const auto keccakf1600_STATE_PI_44 = in.get(C::keccakf1600_state_rho_14);
121 const auto keccakf1600_POW_64_MIN_1 =
FF(
uint256_t{ 18446744073709551615UL, 0UL, 0UL, 0UL });
122 const auto keccakf1600_HIGHEST_SLICE_ADDRESS =
123 (constants_AVM_HIGHEST_MEM_ADDRESS - constants_AVM_KECCAKF1600_STATE_SIZE) +
FF(1);
126 using View =
typename std::tuple_element_t<0, ContainerOverSubrelations>::View;
128 static_cast<View
>(in.get(C::keccakf1600_sel)) * (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_sel)));
132 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
133 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_start)) *
134 ((
static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) -
FF(1)) +
135 static_cast<View
>(in.get(C::keccakf1600_error)));
139 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
141 static_cast<View
>(in.get(C::keccakf1600_start)) * (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_start)));
145 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
147 static_cast<View
>(in.get(C::keccakf1600_start)) * (
static_cast<View
>(in.get(C::keccakf1600_round)) -
FF(1));
151 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
152 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_round)) *
153 ((
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_sel))) *
154 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_round_inv))) +
155 static_cast<View
>(in.get(C::keccakf1600_round_inv))) -
156 static_cast<View
>(in.get(C::keccakf1600_sel)));
160 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
162 static_cast<View
>(in.get(C::keccakf1600_sel)) * (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
163 ((
static_cast<View
>(in.get(C::keccakf1600_round_shift)) -
static_cast<View
>(in.get(C::keccakf1600_round))) -
168 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
170 static_cast<View
>(in.get(C::keccakf1600_last)) * (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last)));
174 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
176 static_cast<View
>(in.get(C::keccakf1600_sel)) *
177 (
static_cast<View
>(in.get(C::keccakf1600_bitwise_xor_op_id)) -
CView(constants_AVM_BITWISE_XOR_OP_ID));
181 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
183 static_cast<View
>(in.get(C::keccakf1600_sel)) *
184 (
static_cast<View
>(in.get(C::keccakf1600_bitwise_and_op_id)) -
CView(constants_AVM_BITWISE_AND_OP_ID));
188 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
189 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
190 (
static_cast<View
>(in.get(C::keccakf1600_tag_u64)) -
CView(constants_MEM_TAG_U64));
194 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
195 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_0)) *
196 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_0)));
200 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
201 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_0)) -
202 (
FF(
uint256_t{ 9223372036854775808UL, 0UL, 0UL, 0UL }) *
203 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_0)) +
204 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_low63_0))));
208 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
209 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_rotl1_0)) -
210 (
FF(2) *
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_low63_0)) +
211 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_0))));
215 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
216 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_1)) *
217 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_1)));
221 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
222 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_1)) -
223 (
FF(
uint256_t{ 9223372036854775808UL, 0UL, 0UL, 0UL }) *
224 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_1)) +
225 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_low63_1))));
229 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
230 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_rotl1_1)) -
231 (
FF(2) *
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_low63_1)) +
232 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_1))));
236 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
237 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_2)) *
238 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_2)));
242 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
243 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_2)) -
244 (
FF(
uint256_t{ 9223372036854775808UL, 0UL, 0UL, 0UL }) *
245 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_2)) +
246 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_low63_2))));
250 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
251 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_rotl1_2)) -
252 (
FF(2) *
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_low63_2)) +
253 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_2))));
257 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
258 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_3)) *
259 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_3)));
263 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
264 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_3)) -
265 (
FF(
uint256_t{ 9223372036854775808UL, 0UL, 0UL, 0UL }) *
266 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_3)) +
267 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_low63_3))));
271 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
272 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_rotl1_3)) -
273 (
FF(2) *
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_low63_3)) +
274 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_3))));
278 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
279 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_4)) *
280 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_4)));
284 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
285 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_4)) -
286 (
FF(
uint256_t{ 9223372036854775808UL, 0UL, 0UL, 0UL }) *
287 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_4)) +
288 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_low63_4))));
292 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
293 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_rotl1_4)) -
294 (
FF(2) *
static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_low63_4)) +
295 static_cast<View
>(in.get(C::keccakf1600_theta_xor_row_msb_4))));
299 using View =
typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
301 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_01)) -
302 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_01) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_01)) +
303 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_01))));
307 using View =
typename std::tuple_element_t<26, ContainerOverSubrelations>::View;
308 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_01)) -
309 (
CView(keccakf1600_POW_ROT_LEN_01) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_01)) +
310 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_01))));
314 using View =
typename std::tuple_element_t<27, ContainerOverSubrelations>::View;
316 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_02)) -
317 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_02) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_02)) +
318 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_02))));
322 using View =
typename std::tuple_element_t<28, ContainerOverSubrelations>::View;
323 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_02)) -
324 (
CView(keccakf1600_POW_ROT_LEN_02) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_02)) +
325 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_02))));
329 using View =
typename std::tuple_element_t<29, ContainerOverSubrelations>::View;
331 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_03)) -
332 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_03) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_03)) +
333 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_03))));
337 using View =
typename std::tuple_element_t<30, ContainerOverSubrelations>::View;
338 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_03)) -
339 (
CView(keccakf1600_POW_ROT_LEN_03) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_03)) +
340 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_03))));
344 using View =
typename std::tuple_element_t<31, ContainerOverSubrelations>::View;
346 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_04)) -
347 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_04) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_04)) +
348 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_04))));
352 using View =
typename std::tuple_element_t<32, ContainerOverSubrelations>::View;
353 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_04)) -
354 (
CView(keccakf1600_POW_ROT_LEN_04) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_04)) +
355 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_04))));
359 using View =
typename std::tuple_element_t<33, ContainerOverSubrelations>::View;
361 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_10)) -
362 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_10) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_10)) +
363 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_10))));
367 using View =
typename std::tuple_element_t<34, ContainerOverSubrelations>::View;
368 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_10)) -
369 (
CView(keccakf1600_POW_ROT_LEN_10) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_10)) +
370 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_10))));
374 using View =
typename std::tuple_element_t<35, ContainerOverSubrelations>::View;
376 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_11)) -
377 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_11) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_11)) +
378 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_11))));
382 using View =
typename std::tuple_element_t<36, ContainerOverSubrelations>::View;
383 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_11)) -
384 (
CView(keccakf1600_POW_ROT_LEN_11) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_11)) +
385 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_11))));
389 using View =
typename std::tuple_element_t<37, ContainerOverSubrelations>::View;
391 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_12)) -
392 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_12) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_12)) +
393 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_12))));
397 using View =
typename std::tuple_element_t<38, ContainerOverSubrelations>::View;
398 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_12)) -
399 (
CView(keccakf1600_POW_ROT_LEN_12) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_12)) +
400 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_12))));
404 using View =
typename std::tuple_element_t<39, ContainerOverSubrelations>::View;
406 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_13)) -
407 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_13) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_13)) +
408 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_13))));
412 using View =
typename std::tuple_element_t<40, ContainerOverSubrelations>::View;
413 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_13)) -
414 (
CView(keccakf1600_POW_ROT_LEN_13) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_13)) +
415 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_13))));
419 using View =
typename std::tuple_element_t<41, ContainerOverSubrelations>::View;
421 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_14)) -
422 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_14) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_14)) +
423 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_14))));
427 using View =
typename std::tuple_element_t<42, ContainerOverSubrelations>::View;
428 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_14)) -
429 (
CView(keccakf1600_POW_ROT_LEN_14) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_14)) +
430 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_14))));
434 using View =
typename std::tuple_element_t<43, ContainerOverSubrelations>::View;
436 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_20)) -
437 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_20) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_20)) +
438 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_20))));
442 using View =
typename std::tuple_element_t<44, ContainerOverSubrelations>::View;
443 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_20)) -
444 (
CView(keccakf1600_POW_ROT_LEN_20) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_20)) +
445 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_20))));
449 using View =
typename std::tuple_element_t<45, ContainerOverSubrelations>::View;
451 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_21)) -
452 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_21) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_21)) +
453 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_21))));
457 using View =
typename std::tuple_element_t<46, ContainerOverSubrelations>::View;
458 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_21)) -
459 (
CView(keccakf1600_POW_ROT_LEN_21) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_21)) +
460 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_21))));
464 using View =
typename std::tuple_element_t<47, ContainerOverSubrelations>::View;
466 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_22)) -
467 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_22) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_22)) +
468 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_22))));
472 using View =
typename std::tuple_element_t<48, ContainerOverSubrelations>::View;
473 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_22)) -
474 (
CView(keccakf1600_POW_ROT_LEN_22) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_22)) +
475 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_22))));
479 using View =
typename std::tuple_element_t<49, ContainerOverSubrelations>::View;
481 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_23)) -
482 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_23) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_23)) +
483 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_23))));
487 using View =
typename std::tuple_element_t<50, ContainerOverSubrelations>::View;
488 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_23)) -
489 (
CView(keccakf1600_POW_ROT_LEN_23) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_23)) +
490 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_23))));
494 using View =
typename std::tuple_element_t<51, ContainerOverSubrelations>::View;
496 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_24)) -
497 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_24) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_24)) +
498 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_24))));
502 using View =
typename std::tuple_element_t<52, ContainerOverSubrelations>::View;
503 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_24)) -
504 (
CView(keccakf1600_POW_ROT_LEN_24) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_24)) +
505 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_24))));
509 using View =
typename std::tuple_element_t<53, ContainerOverSubrelations>::View;
511 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_30)) -
512 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_30) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_30)) +
513 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_30))));
517 using View =
typename std::tuple_element_t<54, ContainerOverSubrelations>::View;
518 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_30)) -
519 (
CView(keccakf1600_POW_ROT_LEN_30) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_30)) +
520 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_30))));
524 using View =
typename std::tuple_element_t<55, ContainerOverSubrelations>::View;
526 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_31)) -
527 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_31) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_31)) +
528 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_31))));
532 using View =
typename std::tuple_element_t<56, ContainerOverSubrelations>::View;
533 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_31)) -
534 (
CView(keccakf1600_POW_ROT_LEN_31) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_31)) +
535 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_31))));
539 using View =
typename std::tuple_element_t<57, ContainerOverSubrelations>::View;
541 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_32)) -
542 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_32) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_32)) +
543 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_32))));
547 using View =
typename std::tuple_element_t<58, ContainerOverSubrelations>::View;
548 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_32)) -
549 (
CView(keccakf1600_POW_ROT_LEN_32) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_32)) +
550 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_32))));
554 using View =
typename std::tuple_element_t<59, ContainerOverSubrelations>::View;
556 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_33)) -
557 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_33) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_33)) +
558 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_33))));
562 using View =
typename std::tuple_element_t<60, ContainerOverSubrelations>::View;
563 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_33)) -
564 (
CView(keccakf1600_POW_ROT_LEN_33) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_33)) +
565 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_33))));
569 using View =
typename std::tuple_element_t<61, ContainerOverSubrelations>::View;
571 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_34)) -
572 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_34) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_34)) +
573 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_34))));
577 using View =
typename std::tuple_element_t<62, ContainerOverSubrelations>::View;
578 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_34)) -
579 (
CView(keccakf1600_POW_ROT_LEN_34) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_34)) +
580 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_34))));
584 using View =
typename std::tuple_element_t<63, ContainerOverSubrelations>::View;
586 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_40)) -
587 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_40) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_40)) +
588 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_40))));
592 using View =
typename std::tuple_element_t<64, ContainerOverSubrelations>::View;
593 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_40)) -
594 (
CView(keccakf1600_POW_ROT_LEN_40) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_40)) +
595 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_40))));
599 using View =
typename std::tuple_element_t<65, ContainerOverSubrelations>::View;
601 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_41)) -
602 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_41) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_41)) +
603 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_41))));
607 using View =
typename std::tuple_element_t<66, ContainerOverSubrelations>::View;
608 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_41)) -
609 (
CView(keccakf1600_POW_ROT_LEN_41) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_41)) +
610 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_41))));
614 using View =
typename std::tuple_element_t<67, ContainerOverSubrelations>::View;
616 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_42)) -
617 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_42) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_42)) +
618 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_42))));
622 using View =
typename std::tuple_element_t<68, ContainerOverSubrelations>::View;
623 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_42)) -
624 (
CView(keccakf1600_POW_ROT_LEN_42) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_42)) +
625 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_42))));
629 using View =
typename std::tuple_element_t<69, ContainerOverSubrelations>::View;
631 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_43)) -
632 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_43) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_43)) +
633 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_43))));
637 using View =
typename std::tuple_element_t<70, ContainerOverSubrelations>::View;
638 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_43)) -
639 (
CView(keccakf1600_POW_ROT_LEN_43) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_43)) +
640 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_43))));
644 using View =
typename std::tuple_element_t<71, ContainerOverSubrelations>::View;
646 (
static_cast<View
>(in.get(C::keccakf1600_state_theta_44)) -
647 (
CView(keccakf1600_POW_ROT_64_MIN_LEN_44) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_44)) +
648 static_cast<View
>(in.get(C::keccakf1600_state_theta_low_44))));
652 using View =
typename std::tuple_element_t<72, ContainerOverSubrelations>::View;
653 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_rho_44)) -
654 (
CView(keccakf1600_POW_ROT_LEN_44) *
static_cast<View
>(in.get(C::keccakf1600_state_theta_low_44)) +
655 static_cast<View
>(in.get(C::keccakf1600_state_theta_hi_44))));
659 using View =
typename std::tuple_element_t<73, ContainerOverSubrelations>::View;
660 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
661 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_02)) -
CView(keccakf1600_ROT_LEN_02));
665 using View =
typename std::tuple_element_t<74, ContainerOverSubrelations>::View;
666 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
667 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_04)) -
CView(keccakf1600_ROT_LEN_04));
671 using View =
typename std::tuple_element_t<75, ContainerOverSubrelations>::View;
672 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
673 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_10)) -
CView(keccakf1600_ROT_LEN_10));
677 using View =
typename std::tuple_element_t<76, ContainerOverSubrelations>::View;
678 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
679 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_12)) -
CView(keccakf1600_ROT_LEN_12));
683 using View =
typename std::tuple_element_t<77, ContainerOverSubrelations>::View;
684 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
685 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_14)) -
CView(keccakf1600_ROT_LEN_14));
689 using View =
typename std::tuple_element_t<78, ContainerOverSubrelations>::View;
690 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
691 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_21)) -
CView(keccakf1600_ROT_LEN_21));
695 using View =
typename std::tuple_element_t<79, ContainerOverSubrelations>::View;
696 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
697 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_23)) -
CView(keccakf1600_ROT_LEN_23));
701 using View =
typename std::tuple_element_t<80, ContainerOverSubrelations>::View;
702 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
703 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_30)) -
CView(keccakf1600_ROT_LEN_30));
707 using View =
typename std::tuple_element_t<81, ContainerOverSubrelations>::View;
708 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
709 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_32)) -
CView(keccakf1600_ROT_LEN_32));
713 using View =
typename std::tuple_element_t<82, ContainerOverSubrelations>::View;
714 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
715 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_33)) -
CView(keccakf1600_ROT_LEN_33));
719 using View =
typename std::tuple_element_t<83, ContainerOverSubrelations>::View;
720 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
721 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_40)) -
CView(keccakf1600_ROT_LEN_40));
725 using View =
typename std::tuple_element_t<84, ContainerOverSubrelations>::View;
726 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
727 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_41)) -
CView(keccakf1600_ROT_LEN_41));
731 using View =
typename std::tuple_element_t<85, ContainerOverSubrelations>::View;
732 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
733 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_43)) -
CView(keccakf1600_ROT_LEN_43));
737 using View =
typename std::tuple_element_t<86, ContainerOverSubrelations>::View;
738 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_sel)) *
739 (
static_cast<View
>(in.get(C::keccakf1600_rot_len_44)) -
CView(keccakf1600_ROT_LEN_44));
743 using View =
typename std::tuple_element_t<87, ContainerOverSubrelations>::View;
745 static_cast<View
>(in.get(C::keccakf1600_sel)) *
746 (
static_cast<View
>(in.get(C::keccakf1600_rot_64_min_len_01)) - (
FF(64) -
CView(keccakf1600_ROT_LEN_01)));
750 using View =
typename std::tuple_element_t<88, ContainerOverSubrelations>::View;
752 static_cast<View
>(in.get(C::keccakf1600_sel)) *
753 (
static_cast<View
>(in.get(C::keccakf1600_rot_64_min_len_03)) - (
FF(64) -
CView(keccakf1600_ROT_LEN_03)));
757 using View =
typename std::tuple_element_t<89, ContainerOverSubrelations>::View;
759 static_cast<View
>(in.get(C::keccakf1600_sel)) *
760 (
static_cast<View
>(in.get(C::keccakf1600_rot_64_min_len_11)) - (
FF(64) -
CView(keccakf1600_ROT_LEN_11)));
764 using View =
typename std::tuple_element_t<90, ContainerOverSubrelations>::View;
766 static_cast<View
>(in.get(C::keccakf1600_sel)) *
767 (
static_cast<View
>(in.get(C::keccakf1600_rot_64_min_len_13)) - (
FF(64) -
CView(keccakf1600_ROT_LEN_13)));
771 using View =
typename std::tuple_element_t<91, ContainerOverSubrelations>::View;
773 static_cast<View
>(in.get(C::keccakf1600_sel)) *
774 (
static_cast<View
>(in.get(C::keccakf1600_rot_64_min_len_20)) - (
FF(64) -
CView(keccakf1600_ROT_LEN_20)));
778 using View =
typename std::tuple_element_t<92, ContainerOverSubrelations>::View;
780 static_cast<View
>(in.get(C::keccakf1600_sel)) *
781 (
static_cast<View
>(in.get(C::keccakf1600_rot_64_min_len_22)) - (
FF(64) -
CView(keccakf1600_ROT_LEN_22)));
785 using View =
typename std::tuple_element_t<93, ContainerOverSubrelations>::View;
787 static_cast<View
>(in.get(C::keccakf1600_sel)) *
788 (
static_cast<View
>(in.get(C::keccakf1600_rot_64_min_len_24)) - (
FF(64) -
CView(keccakf1600_ROT_LEN_24)));
792 using View =
typename std::tuple_element_t<94, ContainerOverSubrelations>::View;
794 static_cast<View
>(in.get(C::keccakf1600_sel)) *
795 (
static_cast<View
>(in.get(C::keccakf1600_rot_64_min_len_31)) - (
FF(64) -
CView(keccakf1600_ROT_LEN_31)));
799 using View =
typename std::tuple_element_t<95, ContainerOverSubrelations>::View;
801 static_cast<View
>(in.get(C::keccakf1600_sel)) *
802 (
static_cast<View
>(in.get(C::keccakf1600_rot_64_min_len_34)) - (
FF(64) -
CView(keccakf1600_ROT_LEN_34)));
806 using View =
typename std::tuple_element_t<96, ContainerOverSubrelations>::View;
808 static_cast<View
>(in.get(C::keccakf1600_sel)) *
809 (
static_cast<View
>(in.get(C::keccakf1600_rot_64_min_len_42)) - (
FF(64) -
CView(keccakf1600_ROT_LEN_42)));
813 using View =
typename std::tuple_element_t<97, ContainerOverSubrelations>::View;
814 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_00)) -
815 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
816 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_00)));
820 using View =
typename std::tuple_element_t<98, ContainerOverSubrelations>::View;
821 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_01)) -
822 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
823 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_01)));
827 using View =
typename std::tuple_element_t<99, ContainerOverSubrelations>::View;
828 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_02)) -
829 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
830 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_02)));
834 using View =
typename std::tuple_element_t<100, ContainerOverSubrelations>::View;
835 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_03)) -
836 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
837 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_03)));
841 using View =
typename std::tuple_element_t<101, ContainerOverSubrelations>::View;
842 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_04)) -
843 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
844 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_04)));
848 using View =
typename std::tuple_element_t<102, ContainerOverSubrelations>::View;
849 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_10)) -
850 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
851 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_10)));
855 using View =
typename std::tuple_element_t<103, ContainerOverSubrelations>::View;
856 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_11)) -
857 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
858 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_11)));
862 using View =
typename std::tuple_element_t<104, ContainerOverSubrelations>::View;
863 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_12)) -
864 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
865 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_12)));
869 using View =
typename std::tuple_element_t<105, ContainerOverSubrelations>::View;
870 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_13)) -
871 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
872 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_13)));
876 using View =
typename std::tuple_element_t<106, ContainerOverSubrelations>::View;
877 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_14)) -
878 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
879 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_14)));
883 using View =
typename std::tuple_element_t<107, ContainerOverSubrelations>::View;
884 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_20)) -
885 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
886 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_20)));
890 using View =
typename std::tuple_element_t<108, ContainerOverSubrelations>::View;
891 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_21)) -
892 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
893 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_21)));
897 using View =
typename std::tuple_element_t<109, ContainerOverSubrelations>::View;
898 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_22)) -
899 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
900 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_22)));
904 using View =
typename std::tuple_element_t<110, ContainerOverSubrelations>::View;
905 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_23)) -
906 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
907 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_23)));
911 using View =
typename std::tuple_element_t<111, ContainerOverSubrelations>::View;
912 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_24)) -
913 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
914 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_24)));
918 using View =
typename std::tuple_element_t<112, ContainerOverSubrelations>::View;
919 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_30)) -
920 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
921 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_30)));
925 using View =
typename std::tuple_element_t<113, ContainerOverSubrelations>::View;
926 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_31)) -
927 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
928 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_31)));
932 using View =
typename std::tuple_element_t<114, ContainerOverSubrelations>::View;
933 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_32)) -
934 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
935 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_32)));
939 using View =
typename std::tuple_element_t<115, ContainerOverSubrelations>::View;
940 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_33)) -
941 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
942 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_33)));
946 using View =
typename std::tuple_element_t<116, ContainerOverSubrelations>::View;
947 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_34)) -
948 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
949 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_34)));
953 using View =
typename std::tuple_element_t<117, ContainerOverSubrelations>::View;
954 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_40)) -
955 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
956 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_40)));
960 using View =
typename std::tuple_element_t<118, ContainerOverSubrelations>::View;
961 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_41)) -
962 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
963 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_41)));
967 using View =
typename std::tuple_element_t<119, ContainerOverSubrelations>::View;
968 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_42)) -
969 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
970 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_42)));
974 using View =
typename std::tuple_element_t<120, ContainerOverSubrelations>::View;
975 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_43)) -
976 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
977 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_43)));
981 using View =
typename std::tuple_element_t<121, ContainerOverSubrelations>::View;
982 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_state_pi_not_44)) -
983 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
984 (
CView(keccakf1600_POW_64_MIN_1) -
CView(keccakf1600_STATE_PI_44)));
988 using View =
typename std::tuple_element_t<122, ContainerOverSubrelations>::View;
989 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
990 (
static_cast<View
>(in.get(C::keccakf1600_state_in_00_shift)) -
991 static_cast<View
>(in.get(C::keccakf1600_state_iota_00)));
995 using View =
typename std::tuple_element_t<123, ContainerOverSubrelations>::View;
996 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
997 (
static_cast<View
>(in.get(C::keccakf1600_state_in_01_shift)) -
998 static_cast<View
>(in.get(C::keccakf1600_state_chi_01)));
1002 using View =
typename std::tuple_element_t<124, ContainerOverSubrelations>::View;
1003 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1004 (
static_cast<View
>(in.get(C::keccakf1600_state_in_02_shift)) -
1005 static_cast<View
>(in.get(C::keccakf1600_state_chi_02)));
1009 using View =
typename std::tuple_element_t<125, ContainerOverSubrelations>::View;
1010 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1011 (
static_cast<View
>(in.get(C::keccakf1600_state_in_03_shift)) -
1012 static_cast<View
>(in.get(C::keccakf1600_state_chi_03)));
1016 using View =
typename std::tuple_element_t<126, ContainerOverSubrelations>::View;
1017 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1018 (
static_cast<View
>(in.get(C::keccakf1600_state_in_04_shift)) -
1019 static_cast<View
>(in.get(C::keccakf1600_state_chi_04)));
1023 using View =
typename std::tuple_element_t<127, ContainerOverSubrelations>::View;
1024 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1025 (
static_cast<View
>(in.get(C::keccakf1600_state_in_10_shift)) -
1026 static_cast<View
>(in.get(C::keccakf1600_state_chi_10)));
1030 using View =
typename std::tuple_element_t<128, ContainerOverSubrelations>::View;
1031 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1032 (
static_cast<View
>(in.get(C::keccakf1600_state_in_11_shift)) -
1033 static_cast<View
>(in.get(C::keccakf1600_state_chi_11)));
1037 using View =
typename std::tuple_element_t<129, ContainerOverSubrelations>::View;
1038 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1039 (
static_cast<View
>(in.get(C::keccakf1600_state_in_12_shift)) -
1040 static_cast<View
>(in.get(C::keccakf1600_state_chi_12)));
1044 using View =
typename std::tuple_element_t<130, ContainerOverSubrelations>::View;
1045 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1046 (
static_cast<View
>(in.get(C::keccakf1600_state_in_13_shift)) -
1047 static_cast<View
>(in.get(C::keccakf1600_state_chi_13)));
1051 using View =
typename std::tuple_element_t<131, ContainerOverSubrelations>::View;
1052 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1053 (
static_cast<View
>(in.get(C::keccakf1600_state_in_14_shift)) -
1054 static_cast<View
>(in.get(C::keccakf1600_state_chi_14)));
1058 using View =
typename std::tuple_element_t<132, ContainerOverSubrelations>::View;
1059 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1060 (
static_cast<View
>(in.get(C::keccakf1600_state_in_20_shift)) -
1061 static_cast<View
>(in.get(C::keccakf1600_state_chi_20)));
1065 using View =
typename std::tuple_element_t<133, ContainerOverSubrelations>::View;
1066 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1067 (
static_cast<View
>(in.get(C::keccakf1600_state_in_21_shift)) -
1068 static_cast<View
>(in.get(C::keccakf1600_state_chi_21)));
1072 using View =
typename std::tuple_element_t<134, ContainerOverSubrelations>::View;
1073 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1074 (
static_cast<View
>(in.get(C::keccakf1600_state_in_22_shift)) -
1075 static_cast<View
>(in.get(C::keccakf1600_state_chi_22)));
1079 using View =
typename std::tuple_element_t<135, ContainerOverSubrelations>::View;
1080 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1081 (
static_cast<View
>(in.get(C::keccakf1600_state_in_23_shift)) -
1082 static_cast<View
>(in.get(C::keccakf1600_state_chi_23)));
1086 using View =
typename std::tuple_element_t<136, ContainerOverSubrelations>::View;
1087 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1088 (
static_cast<View
>(in.get(C::keccakf1600_state_in_24_shift)) -
1089 static_cast<View
>(in.get(C::keccakf1600_state_chi_24)));
1093 using View =
typename std::tuple_element_t<137, ContainerOverSubrelations>::View;
1094 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1095 (
static_cast<View
>(in.get(C::keccakf1600_state_in_30_shift)) -
1096 static_cast<View
>(in.get(C::keccakf1600_state_chi_30)));
1100 using View =
typename std::tuple_element_t<138, ContainerOverSubrelations>::View;
1101 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1102 (
static_cast<View
>(in.get(C::keccakf1600_state_in_31_shift)) -
1103 static_cast<View
>(in.get(C::keccakf1600_state_chi_31)));
1107 using View =
typename std::tuple_element_t<139, ContainerOverSubrelations>::View;
1108 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1109 (
static_cast<View
>(in.get(C::keccakf1600_state_in_32_shift)) -
1110 static_cast<View
>(in.get(C::keccakf1600_state_chi_32)));
1114 using View =
typename std::tuple_element_t<140, ContainerOverSubrelations>::View;
1115 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1116 (
static_cast<View
>(in.get(C::keccakf1600_state_in_33_shift)) -
1117 static_cast<View
>(in.get(C::keccakf1600_state_chi_33)));
1121 using View =
typename std::tuple_element_t<141, ContainerOverSubrelations>::View;
1122 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1123 (
static_cast<View
>(in.get(C::keccakf1600_state_in_34_shift)) -
1124 static_cast<View
>(in.get(C::keccakf1600_state_chi_34)));
1128 using View =
typename std::tuple_element_t<142, ContainerOverSubrelations>::View;
1129 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1130 (
static_cast<View
>(in.get(C::keccakf1600_state_in_40_shift)) -
1131 static_cast<View
>(in.get(C::keccakf1600_state_chi_40)));
1135 using View =
typename std::tuple_element_t<143, ContainerOverSubrelations>::View;
1136 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1137 (
static_cast<View
>(in.get(C::keccakf1600_state_in_41_shift)) -
1138 static_cast<View
>(in.get(C::keccakf1600_state_chi_41)));
1142 using View =
typename std::tuple_element_t<144, ContainerOverSubrelations>::View;
1143 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1144 (
static_cast<View
>(in.get(C::keccakf1600_state_in_42_shift)) -
1145 static_cast<View
>(in.get(C::keccakf1600_state_chi_42)));
1149 using View =
typename std::tuple_element_t<145, ContainerOverSubrelations>::View;
1150 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1151 (
static_cast<View
>(in.get(C::keccakf1600_state_in_43_shift)) -
1152 static_cast<View
>(in.get(C::keccakf1600_state_chi_43)));
1156 using View =
typename std::tuple_element_t<146, ContainerOverSubrelations>::View;
1157 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1158 (
static_cast<View
>(in.get(C::keccakf1600_state_in_44_shift)) -
1159 static_cast<View
>(in.get(C::keccakf1600_state_chi_44)));
1163 using View =
typename std::tuple_element_t<147, ContainerOverSubrelations>::View;
1164 auto tmp =
static_cast<View
>(in.get(C::keccakf1600_start)) *
1165 (
static_cast<View
>(in.get(C::keccakf1600_highest_slice_address)) -
1166 CView(keccakf1600_HIGHEST_SLICE_ADDRESS));
1170 using View =
typename std::tuple_element_t<148, ContainerOverSubrelations>::View;
1171 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_error)) -
1172 (
FF(1) - (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_src_out_of_range_error))) *
1173 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_dst_out_of_range_error))) *
1174 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_tag_error)))));
1178 using View =
typename std::tuple_element_t<149, ContainerOverSubrelations>::View;
1179 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1180 (
static_cast<View
>(in.get(C::keccakf1600_dst_addr_shift)) -
1181 static_cast<View
>(in.get(C::keccakf1600_dst_addr)));
1185 using View =
typename std::tuple_element_t<150, ContainerOverSubrelations>::View;
1187 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1188 (
static_cast<View
>(in.get(C::keccakf1600_clk_shift)) -
static_cast<View
>(in.get(C::keccakf1600_clk)));
1192 using View =
typename std::tuple_element_t<151, ContainerOverSubrelations>::View;
1193 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1194 (
static_cast<View
>(in.get(C::keccakf1600_space_id_shift)) -
1195 static_cast<View
>(in.get(C::keccakf1600_space_id)));
1199 using View =
typename std::tuple_element_t<152, ContainerOverSubrelations>::View;
1200 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_last))) *
1201 (
static_cast<View
>(in.get(C::keccakf1600_sel_no_error_shift)) -
1202 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)));
1206 using View =
typename std::tuple_element_t<153, ContainerOverSubrelations>::View;
1207 auto tmp = (
static_cast<View
>(in.get(C::keccakf1600_sel_slice_read)) -
1208 static_cast<View
>(in.get(C::keccakf1600_start)) *
1209 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_src_out_of_range_error))) *
1210 (
FF(1) -
static_cast<View
>(in.get(C::keccakf1600_dst_out_of_range_error))));
1214 using View =
typename std::tuple_element_t<154, ContainerOverSubrelations>::View;
1216 (
static_cast<View
>(in.get(C::keccakf1600_sel_slice_write)) -
1217 static_cast<View
>(in.get(C::keccakf1600_sel_no_error)) *
static_cast<View
>(in.get(C::keccakf1600_last)));