32 in.get(C::bc_decomposition_last_of_contract) * (
FF(1) - in.get(C::bc_decomposition_last_of_contract));
33 tmp *= scaling_factor;
34 std::get<1>(evals) +=
typename Accumulator::View(tmp);
39 (in.get(C::bc_decomposition_bytes_remaining) *
40 ((
FF(1) - in.get(C::bc_decomposition_sel)) * (
FF(1) - in.get(C::bc_decomposition_bytes_rem_inv)) +
41 in.get(C::bc_decomposition_bytes_rem_inv)) -
42 in.get(C::bc_decomposition_sel));
43 tmp *= scaling_factor;
44 std::get<2>(evals) +=
typename Accumulator::View(tmp);
48 auto tmp = (
FF(1) - in.get(C::precomputed_first_row)) * (
FF(1) - in.get(C::bc_decomposition_sel)) *
49 in.get(C::bc_decomposition_sel_shift);
50 tmp *= scaling_factor;
51 std::get<3>(evals) +=
typename Accumulator::View(tmp);
56 in.get(C::bc_decomposition_sel) * (((in.get(C::bc_decomposition_bytes_remaining) -
FF(1)) *
57 (in.get(C::bc_decomposition_last_of_contract) *
58 (
FF(1) - in.get(C::bc_decomposition_bytes_rem_min_one_inv)) +
59 in.get(C::bc_decomposition_bytes_rem_min_one_inv)) +
60 in.get(C::bc_decomposition_last_of_contract)) -
62 tmp *= scaling_factor;
63 std::get<4>(evals) +=
typename Accumulator::View(tmp);
67 auto tmp = bc_decomposition_FIRST_OR_LAST_CONTRACT * in.get(C::bc_decomposition_pc_shift);
68 tmp *= scaling_factor;
69 std::get<5>(evals) +=
typename Accumulator::View(tmp);
73 auto tmp = in.get(C::bc_decomposition_sel) * (
FF(1) - in.get(C::bc_decomposition_last_of_contract)) *
74 ((in.get(C::bc_decomposition_pc_shift) - in.get(C::bc_decomposition_pc)) -
FF(1));
75 tmp *= scaling_factor;
76 std::get<6>(evals) +=
typename Accumulator::View(tmp);
81 in.get(C::bc_decomposition_sel) * (
FF(1) - in.get(C::bc_decomposition_last_of_contract)) *
82 ((in.get(C::bc_decomposition_bytes_remaining_shift) - in.get(C::bc_decomposition_bytes_remaining)) +
FF(1));
83 tmp *= scaling_factor;
84 std::get<7>(evals) +=
typename Accumulator::View(tmp);
88 auto tmp = (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) *
89 (in.get(C::bc_decomposition_id_shift) - in.get(C::bc_decomposition_id));
90 tmp *= scaling_factor;
91 std::get<8>(evals) +=
typename Accumulator::View(tmp);
95 auto tmp = in.get(C::bc_decomposition_sel_windows_gt_remaining) *
96 (
FF(1) - in.get(C::bc_decomposition_sel_windows_gt_remaining));
97 tmp *= scaling_factor;
98 std::get<9>(evals) +=
typename Accumulator::View(tmp);
102 auto tmp = in.get(C::bc_decomposition_is_windows_eq_remaining) *
103 (
FF(1) - in.get(C::bc_decomposition_is_windows_eq_remaining));
104 tmp *= scaling_factor;
109 auto tmp = in.get(C::bc_decomposition_sel) *
110 (((bc_decomposition_WINDOW_SIZE - in.get(C::bc_decomposition_bytes_remaining)) *
111 (in.get(C::bc_decomposition_is_windows_eq_remaining) *
112 (
FF(1) - in.get(C::bc_decomposition_windows_min_remaining_inv)) +
113 in.get(C::bc_decomposition_windows_min_remaining_inv)) +
114 in.get(C::bc_decomposition_is_windows_eq_remaining)) -
116 tmp *= scaling_factor;
121 auto tmp = in.get(C::bc_decomposition_last_of_contract) *
122 (
FF(1) - in.get(C::bc_decomposition_sel_windows_gt_remaining));
123 tmp *= scaling_factor;
128 auto tmp = (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) *
129 ((in.get(C::bc_decomposition_sel_windows_gt_remaining_shift) -
130 in.get(C::bc_decomposition_is_windows_eq_remaining)) -
131 in.get(C::bc_decomposition_sel_windows_gt_remaining));
132 tmp *= scaling_factor;
137 auto tmp = in.get(C::bc_decomposition_sel) *
138 ((
FF(1) - in.get(C::bc_decomposition_sel_windows_gt_remaining)) *
139 (in.get(C::bc_decomposition_bytes_to_read) - bc_decomposition_WINDOW_SIZE) +
140 in.get(C::bc_decomposition_sel_windows_gt_remaining) *
141 (in.get(C::bc_decomposition_bytes_to_read) - in.get(C::bc_decomposition_bytes_remaining)));
142 tmp *= scaling_factor;
147 auto tmp = (in.get(C::bc_decomposition_bytes_pc_plus_1) -
148 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_shift));
149 tmp *= scaling_factor;
155 (in.get(C::bc_decomposition_bytes_pc_plus_2) -
156 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_1_shift));
157 tmp *= scaling_factor;
163 (in.get(C::bc_decomposition_bytes_pc_plus_3) -
164 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_2_shift));
165 tmp *= scaling_factor;
171 (in.get(C::bc_decomposition_bytes_pc_plus_4) -
172 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_3_shift));
173 tmp *= scaling_factor;
179 (in.get(C::bc_decomposition_bytes_pc_plus_5) -
180 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_4_shift));
181 tmp *= scaling_factor;
187 (in.get(C::bc_decomposition_bytes_pc_plus_6) -
188 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_5_shift));
189 tmp *= scaling_factor;
195 (in.get(C::bc_decomposition_bytes_pc_plus_7) -
196 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_6_shift));
197 tmp *= scaling_factor;
203 (in.get(C::bc_decomposition_bytes_pc_plus_8) -
204 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_7_shift));
205 tmp *= scaling_factor;
211 (in.get(C::bc_decomposition_bytes_pc_plus_9) -
212 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_8_shift));
213 tmp *= scaling_factor;
219 (in.get(C::bc_decomposition_bytes_pc_plus_10) -
220 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_9_shift));
221 tmp *= scaling_factor;
227 (in.get(C::bc_decomposition_bytes_pc_plus_11) -
228 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_10_shift));
229 tmp *= scaling_factor;
235 (in.get(C::bc_decomposition_bytes_pc_plus_12) -
236 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_11_shift));
237 tmp *= scaling_factor;
243 (in.get(C::bc_decomposition_bytes_pc_plus_13) -
244 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_12_shift));
245 tmp *= scaling_factor;
251 (in.get(C::bc_decomposition_bytes_pc_plus_14) -
252 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_13_shift));
253 tmp *= scaling_factor;
259 (in.get(C::bc_decomposition_bytes_pc_plus_15) -
260 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_14_shift));
261 tmp *= scaling_factor;
267 (in.get(C::bc_decomposition_bytes_pc_plus_16) -
268 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_15_shift));
269 tmp *= scaling_factor;
275 (in.get(C::bc_decomposition_bytes_pc_plus_17) -
276 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_16_shift));
277 tmp *= scaling_factor;
283 (in.get(C::bc_decomposition_bytes_pc_plus_18) -
284 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_17_shift));
285 tmp *= scaling_factor;
291 (in.get(C::bc_decomposition_bytes_pc_plus_19) -
292 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_18_shift));
293 tmp *= scaling_factor;
299 (in.get(C::bc_decomposition_bytes_pc_plus_20) -
300 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_19_shift));
301 tmp *= scaling_factor;
307 (in.get(C::bc_decomposition_bytes_pc_plus_21) -
308 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_20_shift));
309 tmp *= scaling_factor;
315 (in.get(C::bc_decomposition_bytes_pc_plus_22) -
316 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_21_shift));
317 tmp *= scaling_factor;
323 (in.get(C::bc_decomposition_bytes_pc_plus_23) -
324 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_22_shift));
325 tmp *= scaling_factor;
331 (in.get(C::bc_decomposition_bytes_pc_plus_24) -
332 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_23_shift));
333 tmp *= scaling_factor;
339 (in.get(C::bc_decomposition_bytes_pc_plus_25) -
340 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_24_shift));
341 tmp *= scaling_factor;
347 (in.get(C::bc_decomposition_bytes_pc_plus_26) -
348 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_25_shift));
349 tmp *= scaling_factor;
355 (in.get(C::bc_decomposition_bytes_pc_plus_27) -
356 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_26_shift));
357 tmp *= scaling_factor;
363 (in.get(C::bc_decomposition_bytes_pc_plus_28) -
364 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_27_shift));
365 tmp *= scaling_factor;
371 (in.get(C::bc_decomposition_bytes_pc_plus_29) -
372 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_28_shift));
373 tmp *= scaling_factor;
379 (in.get(C::bc_decomposition_bytes_pc_plus_30) -
380 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_29_shift));
381 tmp *= scaling_factor;
387 (in.get(C::bc_decomposition_bytes_pc_plus_31) -
388 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_30_shift));
389 tmp *= scaling_factor;
395 (in.get(C::bc_decomposition_bytes_pc_plus_32) -
396 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_31_shift));
397 tmp *= scaling_factor;
403 (in.get(C::bc_decomposition_bytes_pc_plus_33) -
404 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_32_shift));
405 tmp *= scaling_factor;
411 (in.get(C::bc_decomposition_bytes_pc_plus_34) -
412 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_33_shift));
413 tmp *= scaling_factor;
419 (in.get(C::bc_decomposition_bytes_pc_plus_35) -
420 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_34_shift));
421 tmp *= scaling_factor;
427 (in.get(C::bc_decomposition_bytes_pc_plus_36) -
428 (
FF(1) - bc_decomposition_FIRST_OR_LAST_CONTRACT) * in.get(C::bc_decomposition_bytes_pc_plus_35_shift));
429 tmp *= scaling_factor;
434 auto tmp = in.get(C::bc_decomposition_sel_packed) * (
FF(1) - in.get(C::bc_decomposition_sel_packed));
435 tmp *= scaling_factor;
440 auto tmp = in.get(C::bc_decomposition_sel_packed) * (
FF(1) - in.get(C::bc_decomposition_sel));
441 tmp *= scaling_factor;
447 in.get(C::bc_decomposition_sel_packed) *
448 ((
FF(1) * in.get(C::bc_decomposition_bytes_pc_plus_30) +
449 FF(256) * in.get(C::bc_decomposition_bytes_pc_plus_29) +
450 FF(65536) * in.get(C::bc_decomposition_bytes_pc_plus_28) +
451 FF(16777216) * in.get(C::bc_decomposition_bytes_pc_plus_27) +
452 FF(4294967296UL) * in.get(C::bc_decomposition_bytes_pc_plus_26) +
453 FF(1099511627776UL) * in.get(C::bc_decomposition_bytes_pc_plus_25) +
454 FF(281474976710656UL) * in.get(C::bc_decomposition_bytes_pc_plus_24) +
455 FF(72057594037927936UL) * in.get(C::bc_decomposition_bytes_pc_plus_23) +
456 FF(
uint256_t{ 0UL, 1UL, 0UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_22) +
457 FF(
uint256_t{ 0UL, 256UL, 0UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_21) +
458 FF(
uint256_t{ 0UL, 65536UL, 0UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_20) +
459 FF(
uint256_t{ 0UL, 16777216UL, 0UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_19) +
460 FF(
uint256_t{ 0UL, 4294967296UL, 0UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_18) +
461 FF(
uint256_t{ 0UL, 1099511627776UL, 0UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_17) +
462 FF(
uint256_t{ 0UL, 281474976710656UL, 0UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_16) +
463 FF(
uint256_t{ 0UL, 72057594037927936UL, 0UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_15) +
464 FF(
uint256_t{ 0UL, 0UL, 1UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_14) +
465 FF(
uint256_t{ 0UL, 0UL, 256UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_13) +
466 FF(
uint256_t{ 0UL, 0UL, 65536UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_12) +
467 FF(
uint256_t{ 0UL, 0UL, 16777216UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_11) +
468 FF(
uint256_t{ 0UL, 0UL, 4294967296UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_10) +
469 FF(
uint256_t{ 0UL, 0UL, 1099511627776UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_9) +
470 FF(
uint256_t{ 0UL, 0UL, 281474976710656UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_8) +
471 FF(
uint256_t{ 0UL, 0UL, 72057594037927936UL, 0UL }) * in.get(C::bc_decomposition_bytes_pc_plus_7) +
472 FF(
uint256_t{ 0UL, 0UL, 0UL, 1UL }) * in.get(C::bc_decomposition_bytes_pc_plus_6) +
473 FF(
uint256_t{ 0UL, 0UL, 0UL, 256UL }) * in.get(C::bc_decomposition_bytes_pc_plus_5) +
474 FF(
uint256_t{ 0UL, 0UL, 0UL, 65536UL }) * in.get(C::bc_decomposition_bytes_pc_plus_4) +
475 FF(
uint256_t{ 0UL, 0UL, 0UL, 16777216UL }) * in.get(C::bc_decomposition_bytes_pc_plus_3) +
476 FF(
uint256_t{ 0UL, 0UL, 0UL, 4294967296UL }) * in.get(C::bc_decomposition_bytes_pc_plus_2) +
477 FF(
uint256_t{ 0UL, 0UL, 0UL, 1099511627776UL }) * in.get(C::bc_decomposition_bytes_pc_plus_1) +
478 FF(
uint256_t{ 0UL, 0UL, 0UL, 281474976710656UL }) * in.get(C::bc_decomposition_bytes)) -
479 in.get(C::bc_decomposition_packed_field));
480 tmp *= scaling_factor;