29 auto tmp = in.get(C::to_radix_mem_start) * (
FF(1) - in.get(C::to_radix_mem_start));
30 tmp *= scaling_factor;
31 std::get<0>(evals) +=
typename Accumulator::View(tmp);
35 auto tmp = in.get(C::to_radix_mem_last) * (
FF(1) - in.get(C::to_radix_mem_last));
36 tmp *= scaling_factor;
37 std::get<1>(evals) +=
typename Accumulator::View(tmp);
41 auto tmp = in.get(C::to_radix_mem_last) * (
FF(1) - in.get(C::to_radix_mem_sel));
42 tmp *= scaling_factor;
43 std::get<2>(evals) +=
typename Accumulator::View(tmp);
48 in.get(C::to_radix_mem_sel_shift) * (in.get(C::to_radix_mem_start_shift) - to_radix_mem_LATCH_CONDITION);
49 tmp *= scaling_factor;
50 std::get<3>(evals) +=
typename Accumulator::View(tmp);
54 auto tmp = (
FF(1) - in.get(C::precomputed_first_row)) * (
FF(1) - in.get(C::to_radix_mem_sel)) *
55 in.get(C::to_radix_mem_sel_shift);
56 tmp *= scaling_factor;
57 std::get<4>(evals) +=
typename Accumulator::View(tmp);
61 auto tmp = to_radix_mem_NOT_LAST *
62 (in.get(C::to_radix_mem_execution_clk_shift) - in.get(C::to_radix_mem_execution_clk));
63 tmp *= scaling_factor;
64 std::get<5>(evals) +=
typename Accumulator::View(tmp);
68 auto tmp = to_radix_mem_NOT_LAST * (in.get(C::to_radix_mem_space_id_shift) - in.get(C::to_radix_mem_space_id));
69 tmp *= scaling_factor;
70 std::get<6>(evals) +=
typename Accumulator::View(tmp);
74 auto tmp = to_radix_mem_NOT_LAST *
75 (in.get(C::to_radix_mem_value_to_decompose_shift) - in.get(C::to_radix_mem_value_to_decompose));
76 tmp *= scaling_factor;
77 std::get<7>(evals) +=
typename Accumulator::View(tmp);
81 auto tmp = to_radix_mem_NOT_LAST * (in.get(C::to_radix_mem_radix_shift) - in.get(C::to_radix_mem_radix));
82 tmp *= scaling_factor;
83 std::get<8>(evals) +=
typename Accumulator::View(tmp);
87 auto tmp = to_radix_mem_NOT_LAST *
88 (in.get(C::to_radix_mem_is_output_bits_shift) - in.get(C::to_radix_mem_is_output_bits));
89 tmp *= scaling_factor;
90 std::get<9>(evals) +=
typename Accumulator::View(tmp);
94 auto tmp = in.get(C::to_radix_mem_sel_dst_out_of_range_err) *
95 (
FF(1) - in.get(C::to_radix_mem_sel_dst_out_of_range_err));
96 tmp *= scaling_factor;
102 in.get(C::to_radix_mem_start) * (in.get(C::to_radix_mem_max_mem_addr) - constants_AVM_HIGHEST_MEM_ADDRESS);
103 tmp *= scaling_factor;
108 auto tmp = in.get(C::to_radix_mem_start) *
109 (in.get(C::to_radix_mem_max_write_addr) -
110 ((in.get(C::to_radix_mem_dst_addr) + in.get(C::to_radix_mem_num_limbs)) -
FF(1)));
111 tmp *= scaling_factor;
116 auto tmp = in.get(C::to_radix_mem_sel_radix_lt_2_err) * (
FF(1) - in.get(C::to_radix_mem_sel_radix_lt_2_err));
117 tmp *= scaling_factor;
123 in.get(C::to_radix_mem_sel_radix_gt_256_err) * (
FF(1) - in.get(C::to_radix_mem_sel_radix_gt_256_err));
124 tmp *= scaling_factor;
129 auto tmp = in.get(C::to_radix_mem_sel_invalid_bitwise_radix) *
130 (
FF(1) - in.get(C::to_radix_mem_sel_invalid_bitwise_radix));
131 tmp *= scaling_factor;
136 auto tmp = in.get(C::to_radix_mem_start) * (in.get(C::to_radix_mem_two) -
FF(2));
137 tmp *= scaling_factor;
142 auto tmp = in.get(C::to_radix_mem_start) * (in.get(C::to_radix_mem_two_five_six) -
FF(256));
143 tmp *= scaling_factor;
148 auto tmp = in.get(C::to_radix_mem_start) * in.get(C::to_radix_mem_is_output_bits) *
149 (
FF(1) - in.get(C::to_radix_mem_sel_invalid_bitwise_radix)) *
150 (in.get(C::to_radix_mem_radix) -
FF(2));
151 tmp *= scaling_factor;
157 in.get(C::to_radix_mem_sel_num_limbs_is_zero) * (
FF(1) - in.get(C::to_radix_mem_sel_num_limbs_is_zero));
158 tmp *= scaling_factor;
163 auto tmp = in.get(C::to_radix_mem_start) *
164 ((in.get(C::to_radix_mem_num_limbs) * (in.get(C::to_radix_mem_sel_num_limbs_is_zero) *
165 (
FF(1) - in.get(C::to_radix_mem_num_limbs_inv)) +
166 in.get(C::to_radix_mem_num_limbs_inv)) -
168 in.get(C::to_radix_mem_sel_num_limbs_is_zero));
169 tmp *= scaling_factor;
174 auto tmp = in.get(C::to_radix_mem_sel_value_is_zero) * (
FF(1) - in.get(C::to_radix_mem_sel_value_is_zero));
175 tmp *= scaling_factor;
180 auto tmp = in.get(C::to_radix_mem_start) *
181 ((in.get(C::to_radix_mem_value_to_decompose) *
182 (in.get(C::to_radix_mem_sel_value_is_zero) * (
FF(1) - in.get(C::to_radix_mem_value_inv)) +
183 in.get(C::to_radix_mem_value_inv)) -
185 in.get(C::to_radix_mem_sel_value_is_zero));
186 tmp *= scaling_factor;
192 (in.get(C::to_radix_mem_sel_invalid_num_limbs_err) -
193 in.get(C::to_radix_mem_sel_num_limbs_is_zero) * (
FF(1) - in.get(C::to_radix_mem_sel_value_is_zero)));
194 tmp *= scaling_factor;
200 (in.get(C::to_radix_mem_err) - (
FF(1) - (
FF(1) - in.get(C::to_radix_mem_sel_dst_out_of_range_err)) *
201 (
FF(1) - in.get(C::to_radix_mem_sel_radix_lt_2_err)) *
202 (
FF(1) - in.get(C::to_radix_mem_sel_radix_gt_256_err)) *
203 (
FF(1) - in.get(C::to_radix_mem_sel_invalid_bitwise_radix)) *
204 (
FF(1) - in.get(C::to_radix_mem_sel_invalid_num_limbs_err))));
205 tmp *= scaling_factor;
210 auto tmp = to_radix_mem_NOT_LAST *
211 (in.get(C::to_radix_mem_num_limbs_shift) - (in.get(C::to_radix_mem_num_limbs) -
FF(1)));
212 tmp *= scaling_factor;
217 auto tmp = to_radix_mem_NOT_LAST *
218 (in.get(C::to_radix_mem_dst_addr_shift) - (in.get(C::to_radix_mem_dst_addr) +
FF(1)));
219 tmp *= scaling_factor;
224 auto tmp = to_radix_mem_SEL_NO_ERR * (
FF(1) - in.get(C::to_radix_mem_sel_num_limbs_is_zero)) *
225 ((to_radix_mem_NUM_LIMBS_MINUS_ONE *
226 (in.get(C::to_radix_mem_last) * (
FF(1) - in.get(C::to_radix_mem_num_limbs_minus_one_inv)) +
227 in.get(C::to_radix_mem_num_limbs_minus_one_inv)) -
229 in.get(C::to_radix_mem_last));
230 tmp *= scaling_factor;
235 auto tmp = in.get(C::to_radix_mem_sel) * in.get(C::to_radix_mem_sel_num_limbs_is_zero) *
236 (in.get(C::to_radix_mem_last) -
FF(1));
237 tmp *= scaling_factor;
242 auto tmp = in.get(C::to_radix_mem_sel) * in.get(C::to_radix_mem_err) *
243 (
FF(1) - in.get(C::to_radix_mem_sel_num_limbs_is_zero)) * (in.get(C::to_radix_mem_last) -
FF(1));
244 tmp *= scaling_factor;
249 auto tmp = (in.get(C::to_radix_mem_sel_should_exec) -
250 in.get(C::to_radix_mem_sel) * (
FF(1) - in.get(C::to_radix_mem_err)) *
251 (
FF(1) - in.get(C::to_radix_mem_sel_num_limbs_is_zero)));
252 tmp *= scaling_factor;
257 auto tmp = (in.get(C::to_radix_mem_limb_index_to_lookup) -
258 in.get(C::to_radix_mem_sel_should_exec) * (in.get(C::to_radix_mem_num_limbs) -
FF(1)));
259 tmp *= scaling_factor;
264 auto tmp = (in.get(C::to_radix_mem_output_tag) -
265 in.get(C::to_radix_mem_sel_should_exec) *
266 ((constants_MEM_TAG_U1 - constants_MEM_TAG_U8) * in.get(C::to_radix_mem_is_output_bits) +
267 constants_MEM_TAG_U8));
268 tmp *= scaling_factor;