35 auto tmp = in.get(C::data_copy_sel_rd_copy) * (
FF(1) - in.get(C::data_copy_sel_rd_copy));
36 tmp *= scaling_factor;
37 std::get<1>(evals) +=
typename Accumulator::View(tmp);
41 auto tmp = data_copy_SEL * (in.get(C::data_copy_thirty_two) -
FF(32));
42 tmp *= scaling_factor;
43 std::get<2>(evals) +=
typename Accumulator::View(tmp);
47 auto tmp = in.get(C::data_copy_sel_start) * (
FF(1) - data_copy_SEL);
48 tmp *= scaling_factor;
49 std::get<3>(evals) +=
typename Accumulator::View(tmp);
53 auto tmp = in.get(C::data_copy_sel_end) * (
FF(1) - data_copy_SEL);
54 tmp *= scaling_factor;
55 std::get<4>(evals) +=
typename Accumulator::View(tmp);
59 auto tmp = in.get(C::data_copy_is_top_level) * (
FF(1) - in.get(C::data_copy_is_top_level));
60 tmp *= scaling_factor;
61 std::get<5>(evals) +=
typename Accumulator::View(tmp);
65 auto tmp = in.get(C::data_copy_sel_cd_copy) *
66 ((in.get(C::data_copy_src_context_id) *
67 (in.get(C::data_copy_is_top_level) * (
FF(1) - in.get(C::data_copy_parent_id_inv)) +
68 in.get(C::data_copy_parent_id_inv)) -
70 in.get(C::data_copy_is_top_level));
71 tmp *= scaling_factor;
72 std::get<6>(evals) +=
typename Accumulator::View(tmp);
76 auto tmp = (in.get(C::data_copy_offset_plus_size) -
77 in.get(C::data_copy_sel_start) * (in.get(C::data_copy_offset) + in.get(C::data_copy_copy_size)));
78 tmp *= scaling_factor;
79 std::get<7>(evals) +=
typename Accumulator::View(tmp);
83 auto tmp = (in.get(C::data_copy_max_read_index) -
84 in.get(C::data_copy_sel_start) *
85 ((in.get(C::data_copy_src_data_size) - in.get(C::data_copy_offset_plus_size)) *
86 in.get(C::data_copy_offset_plus_size_is_gt) +
87 in.get(C::data_copy_offset_plus_size)));
88 tmp *= scaling_factor;
89 std::get<8>(evals) +=
typename Accumulator::View(tmp);
93 auto tmp = in.get(C::data_copy_src_out_of_range_err) * (
FF(1) - in.get(C::data_copy_src_out_of_range_err));
94 tmp *= scaling_factor;
95 std::get<9>(evals) +=
typename Accumulator::View(tmp);
99 auto tmp = in.get(C::data_copy_dst_out_of_range_err) * (
FF(1) - in.get(C::data_copy_dst_out_of_range_err));
100 tmp *= scaling_factor;
106 in.get(C::data_copy_sel_start) * (in.get(C::data_copy_max_mem_addr) - constants_AVM_HIGHEST_MEM_ADDRESS);
107 tmp *= scaling_factor;
112 auto tmp = (in.get(C::data_copy_max_read_addr) - in.get(C::data_copy_sel_start) * data_copy_MAX_READ_ADDR);
113 tmp *= scaling_factor;
118 auto tmp = (in.get(C::data_copy_max_write_addr) - in.get(C::data_copy_sel_start) * data_copy_MAX_WRITE_ADDR);
119 tmp *= scaling_factor;
124 auto tmp = (in.get(C::data_copy_err) - (
FF(1) - (
FF(1) - in.get(C::data_copy_dst_out_of_range_err)) *
125 (
FF(1) - in.get(C::data_copy_src_out_of_range_err))));
126 tmp *= scaling_factor;
131 auto tmp = in.get(C::data_copy_sel_start_no_err) * (
FF(1) - in.get(C::data_copy_sel_start_no_err));
132 tmp *= scaling_factor;
137 auto tmp = (in.get(C::data_copy_sel_start_no_err) -
138 in.get(C::data_copy_sel_start) * (
FF(1) - in.get(C::data_copy_err)));
139 tmp *= scaling_factor;
144 auto tmp = (in.get(C::data_copy_sel_cd_copy_shift) + in.get(C::data_copy_sel_rd_copy_shift)) *
145 in.get(C::data_copy_sel_end) * (in.get(C::data_copy_sel_start_shift) -
FF(1));
146 tmp *= scaling_factor;
151 auto tmp = in.get(C::data_copy_sel_start_no_err) *
152 ((in.get(C::data_copy_copy_size) * (in.get(C::data_copy_sel_write_count_is_zero) *
153 (
FF(1) - in.get(C::data_copy_write_count_zero_inv)) +
154 in.get(C::data_copy_write_count_zero_inv)) -
156 in.get(C::data_copy_sel_write_count_is_zero));
157 tmp *= scaling_factor;
162 auto tmp = in.get(C::data_copy_sel_start_no_err) * in.get(C::data_copy_sel_write_count_is_zero) *
163 (in.get(C::data_copy_sel_end) -
FF(1));
164 tmp *= scaling_factor;
169 auto tmp = data_copy_SEL_PERFORM_COPY *
170 ((data_copy_WRITE_COUNT_MINUS_ONE *
171 (in.get(C::data_copy_sel_end) * (
FF(1) - in.get(C::data_copy_write_count_minus_one_inv)) +
172 in.get(C::data_copy_write_count_minus_one_inv)) -
174 in.get(C::data_copy_sel_end));
175 tmp *= scaling_factor;
180 auto tmp = in.get(C::data_copy_err) * (in.get(C::data_copy_sel_end) -
FF(1));
181 tmp *= scaling_factor;
187 in.get(C::data_copy_sel_start_no_err) * (
FF(1) - in.get(C::data_copy_sel_write_count_is_zero)) *
188 (in.get(C::data_copy_reads_left) - (in.get(C::data_copy_max_read_index) - in.get(C::data_copy_offset)) *
189 (
FF(1) - in.get(C::data_copy_offset_gt_max_read_index)));
190 tmp *= scaling_factor;
195 auto tmp = (in.get(C::data_copy_sel_mem_write) - data_copy_SEL_PERFORM_COPY);
196 tmp *= scaling_factor;
201 auto tmp = data_copy_SEL * (
FF(1) - in.get(C::data_copy_sel_end)) *
202 ((in.get(C::data_copy_copy_size_shift) - in.get(C::data_copy_copy_size)) +
FF(1));
203 tmp *= scaling_factor;
208 auto tmp = (
FF(1) - in.get(C::precomputed_first_row)) * data_copy_SEL * (
FF(1) - in.get(C::data_copy_sel_end)) *
209 ((in.get(C::data_copy_dst_addr_shift) - in.get(C::data_copy_dst_addr)) -
FF(1));
210 tmp *= scaling_factor;
215 auto tmp = in.get(C::data_copy_sel_start_no_err) * (
FF(1) - in.get(C::data_copy_sel_write_count_is_zero)) *
216 ((in.get(C::data_copy_read_addr) - in.get(C::data_copy_src_addr)) - in.get(C::data_copy_offset));
217 tmp *= scaling_factor;
222 auto tmp = data_copy_SEL * (
FF(1) - in.get(C::data_copy_padding)) * (
FF(1) - in.get(C::data_copy_sel_end)) *
223 ((in.get(C::data_copy_read_addr_shift) - in.get(C::data_copy_read_addr)) -
FF(1));
224 tmp *= scaling_factor;
229 auto tmp = data_copy_SEL * (
FF(1) - in.get(C::data_copy_padding)) * (
FF(1) - in.get(C::data_copy_sel_end)) *
230 ((in.get(C::data_copy_reads_left_shift) - in.get(C::data_copy_reads_left)) +
FF(1));
231 tmp *= scaling_factor;
236 auto tmp = data_copy_SEL_PERFORM_COPY *
237 ((in.get(C::data_copy_reads_left) *
238 (in.get(C::data_copy_padding) * (
FF(1) - in.get(C::data_copy_reads_left_inv)) +
239 in.get(C::data_copy_reads_left_inv)) -
241 in.get(C::data_copy_padding));
242 tmp *= scaling_factor;
247 auto tmp = (in.get(C::data_copy_sel_mem_read) - data_copy_SEL_PERFORM_COPY *
248 (
FF(1) - in.get(C::data_copy_is_top_level)) *
249 (
FF(1) - in.get(C::data_copy_padding)));
250 tmp *= scaling_factor;
255 auto tmp = data_copy_SEL_PERFORM_COPY * in.get(C::data_copy_padding) * in.get(C::data_copy_value);
256 tmp *= scaling_factor;
261 auto tmp = (in.get(C::data_copy_cd_copy_col_read) -
262 data_copy_SEL_PERFORM_COPY * (
FF(1) - in.get(C::data_copy_padding)) *
263 in.get(C::data_copy_is_top_level) * in.get(C::data_copy_sel_cd_copy));
264 tmp *= scaling_factor;
269 auto tmp = (in.get(C::data_copy_sel_cd_copy_start) -
270 in.get(C::data_copy_sel_start) * in.get(C::data_copy_sel_cd_copy));
271 tmp *= scaling_factor;
276 auto tmp = (in.get(C::data_copy_sel_rd_copy_start) -
277 in.get(C::data_copy_sel_start) * in.get(C::data_copy_sel_rd_copy));
278 tmp *= scaling_factor;