31 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
33 static_cast<View
>(in.get(C::to_radix_start)) * (
FF(1) -
static_cast<View
>(in.get(C::to_radix_start)));
37 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
38 auto tmp =
static_cast<View
>(in.get(C::to_radix_end)) * (
FF(1) -
static_cast<View
>(in.get(C::to_radix_end)));
42 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
43 auto tmp =
static_cast<View
>(in.get(C::to_radix_end)) *
static_cast<View
>(in.get(C::precomputed_first_row));
47 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
48 auto tmp =
static_cast<View
>(in.get(C::to_radix_sel_shift)) *
49 (
static_cast<View
>(in.get(C::to_radix_start_shift)) -
CView(to_radix_LATCH_CONDITION));
53 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
54 auto tmp =
static_cast<View
>(in.get(C::to_radix_start)) * (
FF(1) -
static_cast<View
>(in.get(C::to_radix_sel)));
58 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
59 auto tmp = (
static_cast<View
>(in.get(C::to_radix_sel_shift)) -
static_cast<View
>(in.get(C::to_radix_sel))) *
60 (
FF(1) -
CView(to_radix_LATCH_CONDITION));
64 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
65 auto tmp =
static_cast<View
>(in.get(C::to_radix_end)) * (
FF(1) -
static_cast<View
>(in.get(C::to_radix_sel)));
69 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
70 auto tmp = (
static_cast<View
>(in.get(C::to_radix_sel)) * (
FF(1) -
static_cast<View
>(in.get(C::to_radix_end))) -
71 static_cast<View
>(in.get(C::to_radix_not_end)));
75 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
76 auto tmp =
static_cast<View
>(in.get(C::to_radix_not_padding_limb)) *
77 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_not_padding_limb)));
81 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
83 static_cast<View
>(in.get(C::to_radix_start)) * (
static_cast<View
>(in.get(C::to_radix_exponent)) -
FF(1));
87 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
88 auto tmp =
static_cast<View
>(in.get(C::to_radix_not_end)) *
89 static_cast<View
>(in.get(C::to_radix_not_padding_limb_shift)) *
90 (
static_cast<View
>(in.get(C::to_radix_exponent)) *
static_cast<View
>(in.get(C::to_radix_radix)) -
91 static_cast<View
>(in.get(C::to_radix_exponent_shift)));
95 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
96 auto tmp =
static_cast<View
>(in.get(C::to_radix_start)) *
97 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_not_padding_limb)));
101 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
102 auto tmp =
static_cast<View
>(in.get(C::to_radix_not_end)) *
103 (((
FF(0) -
static_cast<View
>(in.get(C::to_radix_not_padding_limb))) *
104 static_cast<View
>(in.get(C::to_radix_is_unsafe_limb)) +
105 static_cast<View
>(in.get(C::to_radix_not_padding_limb))) -
106 static_cast<View
>(in.get(C::to_radix_not_padding_limb_shift)));
110 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
111 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::to_radix_not_padding_limb))) *
112 static_cast<View
>(in.get(C::to_radix_exponent));
116 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
118 static_cast<View
>(in.get(C::to_radix_found)) * (
FF(1) -
static_cast<View
>(in.get(C::to_radix_found)));
122 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
123 auto tmp =
static_cast<View
>(in.get(C::to_radix_start)) *
static_cast<View
>(in.get(C::to_radix_limb_index));
127 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
128 auto tmp =
static_cast<View
>(in.get(C::to_radix_not_end)) *
129 ((
static_cast<View
>(in.get(C::to_radix_limb_index)) +
FF(1)) -
130 static_cast<View
>(in.get(C::to_radix_limb_index_shift)));
134 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
136 static_cast<View
>(in.get(C::to_radix_sel)) *
137 (((
static_cast<View
>(in.get(C::to_radix_radix)) -
FF(1)) -
static_cast<View
>(in.get(C::to_radix_limb))) -
138 static_cast<View
>(in.get(C::to_radix_limb_radix_diff)));
142 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
143 auto tmp =
static_cast<View
>(in.get(C::to_radix_start)) *
144 (
static_cast<View
>(in.get(C::to_radix_acc)) -
static_cast<View
>(in.get(C::to_radix_limb)));
148 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
150 static_cast<View
>(in.get(C::to_radix_not_end)) *
151 ((
static_cast<View
>(in.get(C::to_radix_acc)) +
static_cast<View
>(in.get(C::to_radix_exponent_shift)) *
152 static_cast<View
>(in.get(C::to_radix_limb_shift))) -
153 static_cast<View
>(in.get(C::to_radix_acc_shift)));
157 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
158 auto tmp =
static_cast<View
>(in.get(C::to_radix_sel)) *
159 ((
CView(to_radix_REM) * (
static_cast<View
>(in.get(C::to_radix_found)) *
160 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_rem_inverse))) +
161 static_cast<View
>(in.get(C::to_radix_rem_inverse))) -
163 static_cast<View
>(in.get(C::to_radix_found)));
167 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
168 auto tmp =
static_cast<View
>(in.get(C::to_radix_not_end)) *
static_cast<View
>(in.get(C::to_radix_found)) *
169 static_cast<View
>(in.get(C::to_radix_limb_shift));
173 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
174 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::to_radix_found))) *
static_cast<View
>(in.get(C::to_radix_end));
178 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
179 auto tmp =
static_cast<View
>(in.get(C::to_radix_is_unsafe_limb)) *
180 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_is_unsafe_limb)));
184 using View =
typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
185 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::to_radix_not_padding_limb))) *
186 static_cast<View
>(in.get(C::to_radix_limb));
190 using View =
typename std::tuple_element_t<26, ContainerOverSubrelations>::View;
191 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::to_radix_not_padding_limb))) *
192 static_cast<View
>(in.get(C::to_radix_p_limb));
196 using View =
typename std::tuple_element_t<27, ContainerOverSubrelations>::View;
198 static_cast<View
>(in.get(C::to_radix_sel)) *
199 ((
CView(to_radix_safety_diff) * (
static_cast<View
>(in.get(C::to_radix_is_unsafe_limb)) *
200 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_safety_diff_inverse))) +
201 static_cast<View
>(in.get(C::to_radix_safety_diff_inverse))) -
203 static_cast<View
>(in.get(C::to_radix_is_unsafe_limb)));
207 using View =
typename std::tuple_element_t<28, ContainerOverSubrelations>::View;
208 auto tmp =
static_cast<View
>(in.get(C::to_radix_acc_under_p)) *
209 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_acc_under_p)));
213 using View =
typename std::tuple_element_t<29, ContainerOverSubrelations>::View;
214 auto tmp =
static_cast<View
>(in.get(C::to_radix_limb_lt_p)) *
215 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_limb_lt_p)));
219 using View =
typename std::tuple_element_t<30, ContainerOverSubrelations>::View;
220 auto tmp =
static_cast<View
>(in.get(C::to_radix_limb_eq_p)) *
221 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_limb_eq_p)));
225 using View =
typename std::tuple_element_t<31, ContainerOverSubrelations>::View;
226 auto tmp =
static_cast<View
>(in.get(C::to_radix_limb_eq_p)) *
static_cast<View
>(in.get(C::to_radix_limb_lt_p));
230 using View =
typename std::tuple_element_t<32, ContainerOverSubrelations>::View;
231 auto tmp =
static_cast<View
>(in.get(C::to_radix_limb_lt_p)) *
232 (
CView(to_radix_LIMB_LT_P) -
static_cast<View
>(in.get(C::to_radix_limb_p_diff)));
236 using View =
typename std::tuple_element_t<33, ContainerOverSubrelations>::View;
237 auto tmp =
static_cast<View
>(in.get(C::to_radix_sel)) *
238 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_limb_lt_p))) *
239 (((
CView(to_radix_LIMB_EQ_P) -
CView(to_radix_LIMB_GT_P)) *
240 static_cast<View
>(in.get(C::to_radix_limb_eq_p)) +
241 CView(to_radix_LIMB_GT_P)) -
242 static_cast<View
>(in.get(C::to_radix_limb_p_diff)));
246 using View =
typename std::tuple_element_t<34, ContainerOverSubrelations>::View;
247 auto tmp =
static_cast<View
>(in.get(C::to_radix_start)) * (
static_cast<View
>(in.get(C::to_radix_acc_under_p)) -
248 static_cast<View
>(in.get(C::to_radix_limb_lt_p)));
252 using View =
typename std::tuple_element_t<35, ContainerOverSubrelations>::View;
253 auto tmp =
static_cast<View
>(in.get(C::to_radix_not_end)) *
254 (((
static_cast<View
>(in.get(C::to_radix_acc_under_p)) -
255 static_cast<View
>(in.get(C::to_radix_limb_lt_p_shift))) *
256 static_cast<View
>(in.get(C::to_radix_limb_eq_p_shift)) +
257 static_cast<View
>(in.get(C::to_radix_limb_lt_p_shift))) -
258 static_cast<View
>(in.get(C::to_radix_acc_under_p_shift)));
262 using View =
typename std::tuple_element_t<36, ContainerOverSubrelations>::View;
263 auto tmp =
static_cast<View
>(in.get(C::to_radix_is_unsafe_limb)) *
264 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_acc_under_p)));
268 using View =
typename std::tuple_element_t<37, ContainerOverSubrelations>::View;
269 auto tmp =
static_cast<View
>(in.get(C::to_radix_not_end)) *
270 (
static_cast<View
>(in.get(C::to_radix_radix)) -
static_cast<View
>(in.get(C::to_radix_radix_shift)));
274 using View =
typename std::tuple_element_t<38, ContainerOverSubrelations>::View;
275 auto tmp =
static_cast<View
>(in.get(C::to_radix_not_end)) *
276 (
static_cast<View
>(in.get(C::to_radix_value)) -
static_cast<View
>(in.get(C::to_radix_value_shift)));
280 using View =
typename std::tuple_element_t<39, ContainerOverSubrelations>::View;
282 static_cast<View
>(in.get(C::to_radix_not_end)) * (
static_cast<View
>(in.get(C::to_radix_safe_limbs)) -
283 static_cast<View
>(in.get(C::to_radix_safe_limbs_shift)));