28 const auto to_radix_mem_NO_ERR_NOR_NUM_LIMBS_ZERO = (in.get(C::to_radix_mem_start) - in.get(C::to_radix_mem_err)) *
29 (
FF(1) - in.get(C::to_radix_mem_sel_num_limbs_is_zero)) +
30 (in.get(C::to_radix_mem_sel) - in.get(C::to_radix_mem_start));
31 const auto to_radix_mem_NUM_LIMBS_MINUS_ONE = (in.get(C::to_radix_mem_num_limbs) -
FF(1));
34 using View =
typename std::tuple_element_t<0, ContainerOverSubrelations>::View;
36 static_cast<View
>(in.get(C::to_radix_mem_sel)) * (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel)));
40 using View =
typename std::tuple_element_t<1, ContainerOverSubrelations>::View;
41 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_start)) *
42 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_start)));
46 using View =
typename std::tuple_element_t<2, ContainerOverSubrelations>::View;
48 static_cast<View
>(in.get(C::to_radix_mem_last)) * (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_last)));
52 using View =
typename std::tuple_element_t<3, ContainerOverSubrelations>::View;
54 (
static_cast<View
>(in.get(C::to_radix_mem_start)) +
static_cast<View
>(in.get(C::to_radix_mem_last))) *
55 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel)));
59 using View =
typename std::tuple_element_t<4, ContainerOverSubrelations>::View;
61 (
FF(1) -
CView(to_radix_mem_LATCH_CONDITION)) *
62 (
static_cast<View
>(in.get(C::to_radix_mem_sel)) -
static_cast<View
>(in.get(C::to_radix_mem_sel_shift)));
66 using View =
typename std::tuple_element_t<5, ContainerOverSubrelations>::View;
67 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_sel_shift)) *
68 (
static_cast<View
>(in.get(C::to_radix_mem_start_shift)) -
CView(to_radix_mem_LATCH_CONDITION));
72 using View =
typename std::tuple_element_t<6, ContainerOverSubrelations>::View;
73 auto tmp = (
FF(1) -
CView(to_radix_mem_LATCH_CONDITION)) *
74 (
static_cast<View
>(in.get(C::to_radix_mem_execution_clk_shift)) -
75 static_cast<View
>(in.get(C::to_radix_mem_execution_clk)));
79 using View =
typename std::tuple_element_t<7, ContainerOverSubrelations>::View;
81 (
FF(1) -
CView(to_radix_mem_LATCH_CONDITION)) * (
static_cast<View
>(in.get(C::to_radix_mem_space_id_shift)) -
82 static_cast<View
>(in.get(C::to_radix_mem_space_id)));
86 using View =
typename std::tuple_element_t<8, ContainerOverSubrelations>::View;
87 auto tmp = (
FF(1) -
CView(to_radix_mem_LATCH_CONDITION)) *
88 (
static_cast<View
>(in.get(C::to_radix_mem_value_to_decompose_shift)) -
89 static_cast<View
>(in.get(C::to_radix_mem_value_to_decompose)));
93 using View =
typename std::tuple_element_t<9, ContainerOverSubrelations>::View;
95 (
FF(1) -
CView(to_radix_mem_LATCH_CONDITION)) *
96 (
static_cast<View
>(in.get(C::to_radix_mem_radix_shift)) -
static_cast<View
>(in.get(C::to_radix_mem_radix)));
100 using View =
typename std::tuple_element_t<10, ContainerOverSubrelations>::View;
101 auto tmp = (
FF(1) -
CView(to_radix_mem_LATCH_CONDITION)) *
102 (
static_cast<View
>(in.get(C::to_radix_mem_is_output_bits_shift)) -
103 static_cast<View
>(in.get(C::to_radix_mem_is_output_bits)));
107 using View =
typename std::tuple_element_t<11, ContainerOverSubrelations>::View;
108 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_start)) *
109 (
static_cast<View
>(in.get(C::to_radix_mem_max_mem_size)) -
CView(constants_AVM_MEMORY_SIZE));
113 using View =
typename std::tuple_element_t<12, ContainerOverSubrelations>::View;
114 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_start)) *
115 ((
static_cast<View
>(in.get(C::to_radix_mem_write_addr_upper_bound)) -
116 static_cast<View
>(in.get(C::to_radix_mem_dst_addr))) -
117 static_cast<View
>(in.get(C::to_radix_mem_num_limbs)));
121 using View =
typename std::tuple_element_t<13, ContainerOverSubrelations>::View;
123 static_cast<View
>(in.get(C::to_radix_mem_start)) * (
static_cast<View
>(in.get(C::to_radix_mem_two)) -
FF(2));
127 using View =
typename std::tuple_element_t<14, ContainerOverSubrelations>::View;
128 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_start)) *
129 (
static_cast<View
>(in.get(C::to_radix_mem_two_five_six)) -
FF(256));
133 using View =
typename std::tuple_element_t<15, ContainerOverSubrelations>::View;
134 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_sel_radix_eq_2)) *
135 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel_radix_eq_2)));
139 using View =
typename std::tuple_element_t<16, ContainerOverSubrelations>::View;
140 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_start)) *
141 ((
CView(to_radix_mem_RADIX_MIN_TWO) *
142 (
static_cast<View
>(in.get(C::to_radix_mem_sel_radix_eq_2)) *
143 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_radix_min_two_inv))) +
144 static_cast<View
>(in.get(C::to_radix_mem_radix_min_two_inv))) -
146 static_cast<View
>(in.get(C::to_radix_mem_sel_radix_eq_2)));
150 using View =
typename std::tuple_element_t<17, ContainerOverSubrelations>::View;
151 auto tmp = (
static_cast<View
>(in.get(C::to_radix_mem_sel_invalid_bitwise_radix)) -
152 static_cast<View
>(in.get(C::to_radix_mem_start)) *
153 static_cast<View
>(in.get(C::to_radix_mem_is_output_bits)) *
154 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel_radix_eq_2))));
158 using View =
typename std::tuple_element_t<18, ContainerOverSubrelations>::View;
159 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_sel_num_limbs_is_zero)) *
160 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel_num_limbs_is_zero)));
164 using View =
typename std::tuple_element_t<19, ContainerOverSubrelations>::View;
165 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_start)) *
166 ((
static_cast<View
>(in.get(C::to_radix_mem_num_limbs)) *
167 (
static_cast<View
>(in.get(C::to_radix_mem_sel_num_limbs_is_zero)) *
168 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_num_limbs_inv))) +
169 static_cast<View
>(in.get(C::to_radix_mem_num_limbs_inv))) -
171 static_cast<View
>(in.get(C::to_radix_mem_sel_num_limbs_is_zero)));
175 using View =
typename std::tuple_element_t<20, ContainerOverSubrelations>::View;
176 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_sel_value_is_zero)) *
177 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel_value_is_zero)));
181 using View =
typename std::tuple_element_t<21, ContainerOverSubrelations>::View;
182 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_start)) *
183 ((
static_cast<View
>(in.get(C::to_radix_mem_value_to_decompose)) *
184 (
static_cast<View
>(in.get(C::to_radix_mem_sel_value_is_zero)) *
185 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_value_inv))) +
186 static_cast<View
>(in.get(C::to_radix_mem_value_inv))) -
188 static_cast<View
>(in.get(C::to_radix_mem_sel_value_is_zero)));
192 using View =
typename std::tuple_element_t<22, ContainerOverSubrelations>::View;
193 auto tmp = (
static_cast<View
>(in.get(C::to_radix_mem_input_validation_error)) -
194 (
FF(1) - (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel_dst_out_of_range_err))) *
195 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel_radix_lt_2_err))) *
196 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel_radix_gt_256_err))) *
197 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel_invalid_bitwise_radix))) *
198 (
FF(1) -
CView(to_radix_mem_SEL_INVALID_NUM_LIMBS_ERR))));
202 using View =
typename std::tuple_element_t<23, ContainerOverSubrelations>::View;
203 auto tmp = (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel))) *
204 static_cast<View
>(in.get(C::to_radix_mem_sel_should_decompose));
208 using View =
typename std::tuple_element_t<24, ContainerOverSubrelations>::View;
209 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_start)) *
210 ((
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_input_validation_error))) *
211 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel_num_limbs_is_zero))) -
212 static_cast<View
>(in.get(C::to_radix_mem_sel_should_decompose)));
216 using View =
typename std::tuple_element_t<25, ContainerOverSubrelations>::View;
217 auto tmp = (
FF(1) -
CView(to_radix_mem_LATCH_CONDITION)) *
218 (
static_cast<View
>(in.get(C::to_radix_mem_sel_should_decompose_shift)) -
219 static_cast<View
>(in.get(C::to_radix_mem_sel_should_decompose)));
223 using View =
typename std::tuple_element_t<26, ContainerOverSubrelations>::View;
224 auto tmp = (
static_cast<View
>(in.get(C::to_radix_mem_limb_index_to_lookup)) -
225 static_cast<View
>(in.get(C::to_radix_mem_sel_should_decompose)) *
226 (
static_cast<View
>(in.get(C::to_radix_mem_num_limbs)) -
FF(1)));
230 using View =
typename std::tuple_element_t<27, ContainerOverSubrelations>::View;
231 auto tmp = (
static_cast<View
>(in.get(C::to_radix_mem_err)) -
232 static_cast<View
>(in.get(C::to_radix_mem_start)) *
233 (
FF(1) - (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_input_validation_error))) *
234 (
FF(1) -
CView(to_radix_mem_SEL_TRUNCATION_ERROR))));
238 using View =
typename std::tuple_element_t<28, ContainerOverSubrelations>::View;
239 auto tmp =
CView(to_radix_mem_NOT_LAST) * (
static_cast<View
>(in.get(C::to_radix_mem_num_limbs_shift)) -
240 (
static_cast<View
>(in.get(C::to_radix_mem_num_limbs)) -
FF(1)));
244 using View =
typename std::tuple_element_t<29, ContainerOverSubrelations>::View;
245 auto tmp =
CView(to_radix_mem_NOT_LAST) * (
static_cast<View
>(in.get(C::to_radix_mem_dst_addr_shift)) -
246 (
static_cast<View
>(in.get(C::to_radix_mem_dst_addr)) +
FF(1)));
250 using View =
typename std::tuple_element_t<30, ContainerOverSubrelations>::View;
252 static_cast<View
>(in.get(C::to_radix_mem_err)) * (
static_cast<View
>(in.get(C::to_radix_mem_last)) -
FF(1));
256 using View =
typename std::tuple_element_t<31, ContainerOverSubrelations>::View;
257 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_start)) *
258 static_cast<View
>(in.get(C::to_radix_mem_sel_num_limbs_is_zero)) *
259 (
static_cast<View
>(in.get(C::to_radix_mem_last)) -
FF(1));
263 using View =
typename std::tuple_element_t<32, ContainerOverSubrelations>::View;
264 auto tmp =
CView(to_radix_mem_NO_ERR_NOR_NUM_LIMBS_ZERO) *
265 ((
CView(to_radix_mem_NUM_LIMBS_MINUS_ONE) *
266 (
static_cast<View
>(in.get(C::to_radix_mem_last)) *
267 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_num_limbs_minus_one_inv))) +
268 static_cast<View
>(in.get(C::to_radix_mem_num_limbs_minus_one_inv))) -
270 static_cast<View
>(in.get(C::to_radix_mem_last)));
274 using View =
typename std::tuple_element_t<33, ContainerOverSubrelations>::View;
275 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_start)) *
276 ((
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_err))) *
277 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel_num_limbs_is_zero))) -
278 static_cast<View
>(in.get(C::to_radix_mem_sel_should_write_mem)));
282 using View =
typename std::tuple_element_t<34, ContainerOverSubrelations>::View;
283 auto tmp = (
FF(1) -
CView(to_radix_mem_LATCH_CONDITION)) *
284 (
static_cast<View
>(in.get(C::to_radix_mem_sel_should_write_mem_shift)) -
285 static_cast<View
>(in.get(C::to_radix_mem_sel_should_write_mem)));
289 using View =
typename std::tuple_element_t<35, ContainerOverSubrelations>::View;
290 auto tmp =
static_cast<View
>(in.get(C::to_radix_mem_sel_should_write_mem)) *
291 (
FF(1) -
static_cast<View
>(in.get(C::to_radix_mem_sel)));
295 using View =
typename std::tuple_element_t<36, ContainerOverSubrelations>::View;
296 auto tmp = (
static_cast<View
>(in.get(C::to_radix_mem_output_tag)) -
297 static_cast<View
>(in.get(C::to_radix_mem_sel_should_write_mem)) *
298 ((
CView(constants_MEM_TAG_U1) -
CView(constants_MEM_TAG_U8)) *
299 static_cast<View
>(in.get(C::to_radix_mem_is_output_bits)) +
300 CView(constants_MEM_TAG_U8)));