35 const AllEntities& in,
37 const FF& scaling_factor)
39 static constexpr size_t NUM_LIMB_BITS = 68;
40 static constexpr size_t NUM_MICRO_LIMB_BITS = 14;
43 const auto MICRO_LIMB_SHIFT =
FF(
uint256_t(1) << NUM_MICRO_LIMB_BITS);
44 const auto MICRO_LIMB_SHIFTx2 = MICRO_LIMB_SHIFT * MICRO_LIMB_SHIFT;
45 const auto MICRO_LIMB_SHIFTx3 = MICRO_LIMB_SHIFTx2 * MICRO_LIMB_SHIFT;
46 const auto MICRO_LIMB_SHIFTx4 = MICRO_LIMB_SHIFTx3 * MICRO_LIMB_SHIFT;
47 const auto MICRO_LIMB_SHIFTx5 = MICRO_LIMB_SHIFTx4 * MICRO_LIMB_SHIFT;
56 auto accumulators_binary_limbs_0 = View(in.accumulators_binary_limbs_0);
57 auto accumulators_binary_limbs_1 = View(in.accumulators_binary_limbs_1);
58 auto accumulators_binary_limbs_2 = View(in.accumulators_binary_limbs_2);
59 auto accumulators_binary_limbs_3 = View(in.accumulators_binary_limbs_3);
62 auto accumulator_limb_0_range_constraint_0 = View(in.accumulator_low_limbs_range_constraint_0);
63 auto accumulator_limb_0_range_constraint_1 = View(in.accumulator_low_limbs_range_constraint_1);
64 auto accumulator_limb_0_range_constraint_2 = View(in.accumulator_low_limbs_range_constraint_2);
65 auto accumulator_limb_0_range_constraint_3 = View(in.accumulator_low_limbs_range_constraint_3);
66 auto accumulator_limb_0_range_constraint_4 = View(in.accumulator_low_limbs_range_constraint_4);
69 auto accumulator_limb_1_range_constraint_0 = View(in.accumulator_low_limbs_range_constraint_0_shift);
70 auto accumulator_limb_1_range_constraint_1 = View(in.accumulator_low_limbs_range_constraint_1_shift);
71 auto accumulator_limb_1_range_constraint_2 = View(in.accumulator_low_limbs_range_constraint_2_shift);
72 auto accumulator_limb_1_range_constraint_3 = View(in.accumulator_low_limbs_range_constraint_3_shift);
73 auto accumulator_limb_1_range_constraint_4 = View(in.accumulator_low_limbs_range_constraint_4_shift);
76 auto accumulator_limb_2_range_constraint_0 = View(in.accumulator_high_limbs_range_constraint_0);
77 auto accumulator_limb_2_range_constraint_1 = View(in.accumulator_high_limbs_range_constraint_1);
78 auto accumulator_limb_2_range_constraint_2 = View(in.accumulator_high_limbs_range_constraint_2);
79 auto accumulator_limb_2_range_constraint_3 = View(in.accumulator_high_limbs_range_constraint_3);
80 auto accumulator_limb_2_range_constraint_4 = View(in.accumulator_high_limbs_range_constraint_4);
83 auto accumulator_limb_3_range_constraint_0 = View(in.accumulator_high_limbs_range_constraint_0_shift);
84 auto accumulator_limb_3_range_constraint_1 = View(in.accumulator_high_limbs_range_constraint_1_shift);
85 auto accumulator_limb_3_range_constraint_2 = View(in.accumulator_high_limbs_range_constraint_2_shift);
86 auto accumulator_limb_3_range_constraint_3 = View(in.accumulator_high_limbs_range_constraint_3_shift);
88 auto op = View(in.op);
89 auto lagrange_even_in_minicircuit = View(in.lagrange_even_in_minicircuit);
90 auto not_even_or_no_op_scaled = Accumulator(lagrange_even_in_minicircuit * (op * scaling_factor));
95 ((accumulator_limb_0_range_constraint_0 +
96 accumulator_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
97 accumulator_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
98 accumulator_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
99 accumulator_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
100 accumulators_binary_limbs_0);
101 std::get<0>(accumulators) += Accumulator(tmp_1) * not_even_or_no_op_scaled;
105 ((accumulator_limb_1_range_constraint_0 +
106 accumulator_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
107 accumulator_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
108 accumulator_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
109 accumulator_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
110 accumulators_binary_limbs_1);
111 std::get<1>(accumulators) += Accumulator(tmp_2) * not_even_or_no_op_scaled;
115 ((accumulator_limb_2_range_constraint_0 +
116 accumulator_limb_2_range_constraint_1 * MICRO_LIMB_SHIFT +
117 accumulator_limb_2_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
118 accumulator_limb_2_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
119 accumulator_limb_2_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
120 accumulators_binary_limbs_2);
121 std::get<2>(accumulators) += Accumulator(tmp_3) * not_even_or_no_op_scaled;
125 ((accumulator_limb_3_range_constraint_0 +
126 accumulator_limb_3_range_constraint_1 * MICRO_LIMB_SHIFT +
127 accumulator_limb_3_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
128 accumulator_limb_3_range_constraint_3 * MICRO_LIMB_SHIFTx3) -
129 accumulators_binary_limbs_3);
130 std::get<3>(accumulators) += Accumulator(tmp_4) * not_even_or_no_op_scaled;
139 const auto LIMB_SHIFT =
FF(
uint256_t(1) << NUM_LIMB_BITS);
143 auto accumulator_limb_0_range_constraint_4 = View(in.accumulator_low_limbs_range_constraint_4);
144 auto accumulator_limb_1_range_constraint_4 = View(in.accumulator_low_limbs_range_constraint_4_shift);
145 auto accumulator_limb_2_range_constraint_4 = View(in.accumulator_high_limbs_range_constraint_4);
157 static const auto SHIFT_12_TO_14 =
FF(4);
158 static const auto SHIFT_10_TO_14 =
FF(16);
159 static const auto SHIFT_8_TO_14 =
FF(64);
160 static const auto SHIFT_4_TO_14 =
FF(1024);
174 auto p_x_limb_0 = View(in.p_x_low_limbs);
175 auto p_x_limb_0_range_constraint_0 = View(in.p_x_low_limbs_range_constraint_0);
176 auto p_x_limb_0_range_constraint_1 = View(in.p_x_low_limbs_range_constraint_1);
177 auto p_x_limb_0_range_constraint_2 = View(in.p_x_low_limbs_range_constraint_2);
178 auto p_x_limb_0_range_constraint_3 = View(in.p_x_low_limbs_range_constraint_3);
179 auto p_x_limb_0_range_constraint_4 = View(in.p_x_low_limbs_range_constraint_4);
183 auto p_x_limb_1 = View(in.p_x_low_limbs_shift);
184 auto p_x_limb_1_range_constraint_0 = View(in.p_x_low_limbs_range_constraint_0_shift);
185 auto p_x_limb_1_range_constraint_1 = View(in.p_x_low_limbs_range_constraint_1_shift);
186 auto p_x_limb_1_range_constraint_2 = View(in.p_x_low_limbs_range_constraint_2_shift);
187 auto p_x_limb_1_range_constraint_3 = View(in.p_x_low_limbs_range_constraint_3_shift);
188 auto p_x_limb_1_range_constraint_4 = View(in.p_x_low_limbs_range_constraint_4_shift);
192 auto p_x_limb_2 = View(in.p_x_high_limbs);
193 auto p_x_limb_2_range_constraint_0 = View(in.p_x_high_limbs_range_constraint_0);
194 auto p_x_limb_2_range_constraint_1 = View(in.p_x_high_limbs_range_constraint_1);
195 auto p_x_limb_2_range_constraint_2 = View(in.p_x_high_limbs_range_constraint_2);
196 auto p_x_limb_2_range_constraint_3 = View(in.p_x_high_limbs_range_constraint_3);
197 auto p_x_limb_2_range_constraint_4 = View(in.p_x_high_limbs_range_constraint_4);
201 auto p_x_limb_3 = View(in.p_x_high_limbs_shift);
202 auto p_x_limb_3_range_constraint_0 = View(in.p_x_high_limbs_range_constraint_0_shift);
203 auto p_x_limb_3_range_constraint_1 = View(in.p_x_high_limbs_range_constraint_1_shift);
204 auto p_x_limb_3_range_constraint_2 = View(in.p_x_high_limbs_range_constraint_2_shift);
205 auto p_x_limb_3_range_constraint_3 = View(in.p_x_high_limbs_range_constraint_3_shift);
209 auto p_y_limb_0 = View(in.p_y_low_limbs);
210 auto p_y_limb_0_range_constraint_0 = View(in.p_y_low_limbs_range_constraint_0);
211 auto p_y_limb_0_range_constraint_1 = View(in.p_y_low_limbs_range_constraint_1);
212 auto p_y_limb_0_range_constraint_2 = View(in.p_y_low_limbs_range_constraint_2);
213 auto p_y_limb_0_range_constraint_3 = View(in.p_y_low_limbs_range_constraint_3);
214 auto p_y_limb_0_range_constraint_4 = View(in.p_y_low_limbs_range_constraint_4);
218 auto p_y_limb_1 = View(in.p_y_low_limbs_shift);
219 auto p_y_limb_1_range_constraint_0 = View(in.p_y_low_limbs_range_constraint_0_shift);
220 auto p_y_limb_1_range_constraint_1 = View(in.p_y_low_limbs_range_constraint_1_shift);
221 auto p_y_limb_1_range_constraint_2 = View(in.p_y_low_limbs_range_constraint_2_shift);
222 auto p_y_limb_1_range_constraint_3 = View(in.p_y_low_limbs_range_constraint_3_shift);
223 auto p_y_limb_1_range_constraint_4 = View(in.p_y_low_limbs_range_constraint_4_shift);
227 auto p_y_limb_2 = View(in.p_y_high_limbs);
228 auto p_y_limb_2_range_constraint_0 = View(in.p_y_high_limbs_range_constraint_0);
229 auto p_y_limb_2_range_constraint_1 = View(in.p_y_high_limbs_range_constraint_1);
230 auto p_y_limb_2_range_constraint_2 = View(in.p_y_high_limbs_range_constraint_2);
231 auto p_y_limb_2_range_constraint_3 = View(in.p_y_high_limbs_range_constraint_3);
232 auto p_y_limb_2_range_constraint_4 = View(in.p_y_high_limbs_range_constraint_4);
236 auto p_y_limb_3 = View(in.p_y_high_limbs_shift);
237 auto p_y_limb_3_range_constraint_0 = View(in.p_y_high_limbs_range_constraint_0_shift);
238 auto p_y_limb_3_range_constraint_1 = View(in.p_y_high_limbs_range_constraint_1_shift);
239 auto p_y_limb_3_range_constraint_2 = View(in.p_y_high_limbs_range_constraint_2_shift);
240 auto p_y_limb_3_range_constraint_3 = View(in.p_y_high_limbs_range_constraint_3_shift);
244 auto z_first_limb_0 = View(in.z_low_limbs);
245 auto z_first_limb_0_range_constraint_0 = View(in.z_low_limbs_range_constraint_0);
246 auto z_first_limb_0_range_constraint_1 = View(in.z_low_limbs_range_constraint_1);
247 auto z_first_limb_0_range_constraint_2 = View(in.z_low_limbs_range_constraint_2);
248 auto z_first_limb_0_range_constraint_3 = View(in.z_low_limbs_range_constraint_3);
249 auto z_first_limb_0_range_constraint_4 = View(in.z_low_limbs_range_constraint_4);
253 auto z_second_limb_0 = View(in.z_low_limbs_shift);
254 auto z_second_limb_0_range_constraint_0 = View(in.z_low_limbs_range_constraint_0_shift);
255 auto z_second_limb_0_range_constraint_1 = View(in.z_low_limbs_range_constraint_1_shift);
256 auto z_second_limb_0_range_constraint_2 = View(in.z_low_limbs_range_constraint_2_shift);
257 auto z_second_limb_0_range_constraint_3 = View(in.z_low_limbs_range_constraint_3_shift);
258 auto z_second_limb_0_range_constraint_4 = View(in.z_low_limbs_range_constraint_4_shift);
262 auto z_first_limb_1 = View(in.z_high_limbs);
263 auto z_first_limb_1_range_constraint_0 = View(in.z_high_limbs_range_constraint_0);
264 auto z_first_limb_1_range_constraint_1 = View(in.z_high_limbs_range_constraint_1);
265 auto z_first_limb_1_range_constraint_2 = View(in.z_high_limbs_range_constraint_2);
266 auto z_first_limb_1_range_constraint_3 = View(in.z_high_limbs_range_constraint_3);
267 auto z_first_limb_1_range_constraint_4 = View(in.z_high_limbs_range_constraint_4);
271 auto z_second_limb_1 = View(in.z_high_limbs_shift);
272 auto z_second_limb_1_range_constraint_0 = View(in.z_high_limbs_range_constraint_0_shift);
273 auto z_second_limb_1_range_constraint_1 = View(in.z_high_limbs_range_constraint_1_shift);
274 auto z_second_limb_1_range_constraint_2 = View(in.z_high_limbs_range_constraint_2_shift);
275 auto z_second_limb_1_range_constraint_3 = View(in.z_high_limbs_range_constraint_3_shift);
276 auto z_second_limb_1_range_constraint_4 = View(in.z_high_limbs_range_constraint_4_shift);
280 auto quotient_binary_limbs_0 = View(in.quotient_low_binary_limbs);
281 auto quotient_limb_0_range_constraint_0 = View(in.quotient_low_limbs_range_constraint_0);
282 auto quotient_limb_0_range_constraint_1 = View(in.quotient_low_limbs_range_constraint_1);
283 auto quotient_limb_0_range_constraint_2 = View(in.quotient_low_limbs_range_constraint_2);
284 auto quotient_limb_0_range_constraint_3 = View(in.quotient_low_limbs_range_constraint_3);
285 auto quotient_limb_0_range_constraint_4 = View(in.quotient_low_limbs_range_constraint_4);
289 auto quotient_binary_limbs_1 = View(in.quotient_low_binary_limbs_shift);
290 auto quotient_limb_1_range_constraint_0 = View(in.quotient_low_limbs_range_constraint_0_shift);
291 auto quotient_limb_1_range_constraint_1 = View(in.quotient_low_limbs_range_constraint_1_shift);
292 auto quotient_limb_1_range_constraint_2 = View(in.quotient_low_limbs_range_constraint_2_shift);
293 auto quotient_limb_1_range_constraint_3 = View(in.quotient_low_limbs_range_constraint_3_shift);
294 auto quotient_limb_1_range_constraint_4 = View(in.quotient_low_limbs_range_constraint_4_shift);
298 auto quotient_binary_limbs_2 = View(in.quotient_high_binary_limbs);
299 auto quotient_limb_2_range_constraint_0 = View(in.quotient_high_limbs_range_constraint_0);
300 auto quotient_limb_2_range_constraint_1 = View(in.quotient_high_limbs_range_constraint_1);
301 auto quotient_limb_2_range_constraint_2 = View(in.quotient_high_limbs_range_constraint_2);
302 auto quotient_limb_2_range_constraint_3 = View(in.quotient_high_limbs_range_constraint_3);
303 auto quotient_limb_2_range_constraint_4 = View(in.quotient_high_limbs_range_constraint_4);
307 auto quotient_binary_limbs_3 = View(in.quotient_high_binary_limbs_shift);
308 auto quotient_limb_3_range_constraint_0 = View(in.quotient_high_limbs_range_constraint_0_shift);
309 auto quotient_limb_3_range_constraint_1 = View(in.quotient_high_limbs_range_constraint_1_shift);
310 auto quotient_limb_3_range_constraint_2 = View(in.quotient_high_limbs_range_constraint_2_shift);
311 auto quotient_limb_3_range_constraint_3 = View(in.quotient_high_limbs_range_constraint_3_shift);
315 auto relation_wide_limbs_lo = View(in.relation_wide_limbs);
316 auto relation_wide_limbs_lo_range_constraint_0 = View(in.relation_wide_limbs_range_constraint_0);
317 auto relation_wide_limbs_lo_range_constraint_1 = View(in.relation_wide_limbs_range_constraint_1);
318 auto relation_wide_limbs_lo_range_constraint_2 = View(in.relation_wide_limbs_range_constraint_2);
319 auto relation_wide_limbs_lo_range_constraint_3 = View(in.relation_wide_limbs_range_constraint_3);
322 auto relation_wide_limbs_lo_range_constraint_4 = View(in.p_x_high_limbs_range_constraint_tail_shift);
323 auto relation_wide_limbs_lo_range_constraint_5 = View(in.accumulator_high_limbs_range_constraint_tail_shift);
327 auto relation_wide_limbs_hi = View(in.relation_wide_limbs_shift);
328 auto relation_wide_limbs_hi_range_constraint_0 = View(in.relation_wide_limbs_range_constraint_0_shift);
329 auto relation_wide_limbs_hi_range_constraint_1 = View(in.relation_wide_limbs_range_constraint_1_shift);
330 auto relation_wide_limbs_hi_range_constraint_2 = View(in.relation_wide_limbs_range_constraint_2_shift);
331 auto relation_wide_limbs_hi_range_constraint_3 = View(in.relation_wide_limbs_range_constraint_3_shift);
334 auto relation_wide_limbs_hi_range_constraint_4 = View(in.p_y_high_limbs_range_constraint_tail_shift);
335 auto relation_wide_limbs_hi_range_constraint_5 = View(in.quotient_high_limbs_range_constraint_tail_shift);
339 auto p_x_limb_0_range_constraint_tail = View(in.p_x_low_limbs_range_constraint_tail);
340 auto p_x_limb_1_range_constraint_tail = View(in.p_x_low_limbs_range_constraint_tail_shift);
341 auto p_x_limb_2_range_constraint_tail = View(in.p_x_high_limbs_range_constraint_tail);
344 auto p_x_limb_3_range_constraint_tail = View(in.p_x_high_limbs_range_constraint_4_shift);
347 auto p_y_limb_0_range_constraint_tail = View(in.p_y_low_limbs_range_constraint_tail);
348 auto p_y_limb_1_range_constraint_tail = View(in.p_y_low_limbs_range_constraint_tail_shift);
349 auto p_y_limb_2_range_constraint_tail = View(in.p_y_high_limbs_range_constraint_tail);
352 auto p_y_limb_3_range_constraint_tail = View(in.p_y_high_limbs_range_constraint_4_shift);
355 auto z_first_limb_0_range_constraint_tail = View(in.z_low_limbs_range_constraint_tail);
356 auto z_second_limb_0_range_constraint_tail = View(in.z_low_limbs_range_constraint_tail_shift);
357 auto z_first_limb_1_range_constraint_tail = View(in.z_high_limbs_range_constraint_tail);
358 auto z_second_limb_1_range_constraint_tail = View(in.z_high_limbs_range_constraint_tail_shift);
362 auto accumulator_limb_0_range_constraint_tail = View(in.accumulator_low_limbs_range_constraint_tail);
363 auto accumulator_limb_1_range_constraint_tail = View(in.accumulator_low_limbs_range_constraint_tail_shift);
364 auto accumulator_limb_2_range_constraint_tail = View(in.accumulator_high_limbs_range_constraint_tail);
368 auto accumulator_limb_3_range_constraint_3 = View(in.accumulator_high_limbs_range_constraint_3_shift);
369 auto accumulator_limb_3_range_constraint_tail = View(in.accumulator_high_limbs_range_constraint_4_shift);
373 auto quotient_limb_0_range_constraint_tail = View(in.quotient_low_limbs_range_constraint_tail);
374 auto quotient_limb_1_range_constraint_tail = View(in.quotient_low_limbs_range_constraint_tail_shift);
375 auto quotient_limb_2_range_constraint_tail = View(in.quotient_high_limbs_range_constraint_tail);
376 auto quotient_limb_3_range_constraint_tail = View(in.quotient_high_limbs_range_constraint_4_shift);
382 auto x_lo = View(in.x_lo_y_hi);
383 auto y_hi = View(in.x_lo_y_hi_shift);
384 auto x_hi = View(in.x_hi_z_1);
385 auto z_one = View(in.x_hi_z_1_shift);
386 auto y_lo = View(in.y_lo_z_2);
387 auto z_two = View(in.y_lo_z_2_shift);
388 auto lagrange_even_in_minicircuit = View(in.lagrange_even_in_minicircuit);
389 auto lagrange_even_in_minicircuit_scaled = lagrange_even_in_minicircuit * scaling_factor;
394 ((p_y_limb_0_range_constraint_0 +
395 p_y_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
396 p_y_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
397 p_y_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
398 p_y_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
400 std::get<4>(accumulators) += Accumulator(tmp_5 * lagrange_even_in_minicircuit_scaled);
404 ((p_y_limb_1_range_constraint_0 +
405 p_y_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
406 p_y_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
407 p_y_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
408 p_y_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
410 std::get<5>(accumulators) += Accumulator(tmp_6 * lagrange_even_in_minicircuit_scaled);
414 ((p_y_limb_2_range_constraint_0 +
415 p_y_limb_2_range_constraint_1 * MICRO_LIMB_SHIFT +
416 p_y_limb_2_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
417 p_y_limb_2_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
418 p_y_limb_2_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
420 std::get<6>(accumulators) += Accumulator(tmp_7 * lagrange_even_in_minicircuit_scaled);
424 ((p_y_limb_3_range_constraint_0 +
425 p_y_limb_3_range_constraint_1 * MICRO_LIMB_SHIFT +
426 p_y_limb_3_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
427 p_y_limb_3_range_constraint_3 * MICRO_LIMB_SHIFTx3) -
429 std::get<7>(accumulators) += Accumulator(tmp_8 * lagrange_even_in_minicircuit_scaled);
433 ((z_first_limb_0_range_constraint_0 +
434 z_first_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
435 z_first_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
436 z_first_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
437 z_first_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
439 std::get<8>(accumulators) += Accumulator(tmp_9 * lagrange_even_in_minicircuit_scaled);
443 ((z_second_limb_0_range_constraint_0 +
444 z_second_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
445 z_second_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
446 z_second_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
447 z_second_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
449 std::get<9>(accumulators) += Accumulator(tmp_10 * lagrange_even_in_minicircuit_scaled);
453 ((z_first_limb_1_range_constraint_0 +
454 z_first_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
455 z_first_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
456 z_first_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
457 z_first_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
459 std::get<10>(accumulators) += Accumulator(tmp_11 * lagrange_even_in_minicircuit_scaled);
463 ((z_second_limb_1_range_constraint_0 +
464 z_second_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
465 z_second_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
466 z_second_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
467 z_second_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
469 std::get<11>(accumulators) += Accumulator(tmp_12 * lagrange_even_in_minicircuit_scaled);
474 ((p_x_limb_0_range_constraint_0 +
475 p_x_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
476 p_x_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
477 p_x_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
478 p_x_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
480 std::get<12>(accumulators) += Accumulator(tmp_13 * lagrange_even_in_minicircuit_scaled);
484 ((p_x_limb_1_range_constraint_0 +
485 p_x_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
486 p_x_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
487 p_x_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
488 p_x_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
490 std::get<13>(accumulators) += Accumulator(tmp_14 * lagrange_even_in_minicircuit_scaled);
494 ((p_x_limb_2_range_constraint_0 +
495 p_x_limb_2_range_constraint_1 * MICRO_LIMB_SHIFT +
496 p_x_limb_2_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
497 p_x_limb_2_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
498 p_x_limb_2_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
500 std::get<14>(accumulators) += Accumulator(tmp_15 * lagrange_even_in_minicircuit_scaled);
504 ((p_x_limb_3_range_constraint_0 +
505 p_x_limb_3_range_constraint_1 * MICRO_LIMB_SHIFT +
506 p_x_limb_3_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
507 p_x_limb_3_range_constraint_3 * MICRO_LIMB_SHIFTx3) -
509 std::get<15>(accumulators) += Accumulator(tmp_16 * lagrange_even_in_minicircuit_scaled);
513 ((quotient_limb_0_range_constraint_0 +
514 quotient_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
515 quotient_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
516 quotient_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
517 quotient_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
518 quotient_binary_limbs_0);
519 std::get<16>(accumulators) += Accumulator(tmp_17 * lagrange_even_in_minicircuit_scaled);
523 ((quotient_limb_1_range_constraint_0 +
524 quotient_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
525 quotient_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
526 quotient_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
527 quotient_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
528 quotient_binary_limbs_1);
529 std::get<17>(accumulators) += Accumulator(tmp_18 * lagrange_even_in_minicircuit_scaled);
533 ((quotient_limb_2_range_constraint_0 +
534 quotient_limb_2_range_constraint_1 * MICRO_LIMB_SHIFT +
535 quotient_limb_2_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
536 quotient_limb_2_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
537 quotient_limb_2_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
538 quotient_binary_limbs_2);
539 std::get<18>(accumulators) += Accumulator(tmp_19 * lagrange_even_in_minicircuit_scaled);
543 ((quotient_limb_3_range_constraint_0 +
544 quotient_limb_3_range_constraint_1 * MICRO_LIMB_SHIFT +
545 quotient_limb_3_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
546 quotient_limb_3_range_constraint_3 * MICRO_LIMB_SHIFTx3) -
547 quotient_binary_limbs_3);
548 std::get<19>(accumulators) += Accumulator(tmp_20 * lagrange_even_in_minicircuit_scaled);
555 ((relation_wide_limbs_lo_range_constraint_0 +
556 relation_wide_limbs_lo_range_constraint_1 * MICRO_LIMB_SHIFT +
557 relation_wide_limbs_lo_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
558 relation_wide_limbs_lo_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
559 relation_wide_limbs_lo_range_constraint_4 * MICRO_LIMB_SHIFTx4 +
560 relation_wide_limbs_lo_range_constraint_5 * MICRO_LIMB_SHIFTx5) -
561 relation_wide_limbs_lo);
562 std::get<20>(accumulators) += Accumulator(tmp_21 * lagrange_even_in_minicircuit_scaled);
566 ((relation_wide_limbs_hi_range_constraint_0 +
567 relation_wide_limbs_hi_range_constraint_1 * MICRO_LIMB_SHIFT +
568 relation_wide_limbs_hi_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
569 relation_wide_limbs_hi_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
570 relation_wide_limbs_hi_range_constraint_4 * MICRO_LIMB_SHIFTx4 +
571 relation_wide_limbs_hi_range_constraint_5 * MICRO_LIMB_SHIFTx5) -
572 relation_wide_limbs_hi);
573 std::get<21>(accumulators) += Accumulator(tmp_22 * lagrange_even_in_minicircuit_scaled);
579 auto tmp_23 = p_x_limb_0_range_constraint_4 * SHIFT_12_TO_14 - p_x_limb_0_range_constraint_tail;
580 std::get<22>(accumulators) += Accumulator(tmp_23 * lagrange_even_in_minicircuit_scaled);
583 auto tmp_24 = p_x_limb_1_range_constraint_4 * SHIFT_12_TO_14 - p_x_limb_1_range_constraint_tail;
584 std::get<23>(accumulators) += Accumulator(tmp_24 * lagrange_even_in_minicircuit_scaled);
587 auto tmp_25 = p_x_limb_2_range_constraint_4 * SHIFT_12_TO_14 - p_x_limb_2_range_constraint_tail;
588 std::get<24>(accumulators) += Accumulator(tmp_25 * lagrange_even_in_minicircuit_scaled);
591 auto tmp_26 = p_x_limb_3_range_constraint_3 * SHIFT_8_TO_14 - p_x_limb_3_range_constraint_tail;
592 std::get<25>(accumulators) += Accumulator(tmp_26 * lagrange_even_in_minicircuit_scaled);
595 auto tmp_27 = p_y_limb_0_range_constraint_4 * SHIFT_12_TO_14 - p_y_limb_0_range_constraint_tail;
596 std::get<26>(accumulators) += Accumulator(tmp_27 * lagrange_even_in_minicircuit_scaled);
599 auto tmp_28 = p_y_limb_1_range_constraint_4 * SHIFT_12_TO_14 - p_y_limb_1_range_constraint_tail;
600 std::get<27>(accumulators) += Accumulator(tmp_28 * lagrange_even_in_minicircuit_scaled);
603 auto tmp_29 = p_y_limb_2_range_constraint_4 * SHIFT_12_TO_14 - p_y_limb_2_range_constraint_tail;
604 std::get<28>(accumulators) += Accumulator(tmp_29 * lagrange_even_in_minicircuit_scaled);
607 auto tmp_30 = p_y_limb_3_range_constraint_3 * SHIFT_8_TO_14 - p_y_limb_3_range_constraint_tail;
608 std::get<29>(accumulators) += Accumulator(tmp_30 * lagrange_even_in_minicircuit_scaled);
611 auto tmp_31 = (z_first_limb_0_range_constraint_4 * SHIFT_12_TO_14 - z_first_limb_0_range_constraint_tail);
612 std::get<30>(accumulators) += Accumulator(tmp_31 * lagrange_even_in_minicircuit_scaled);
615 auto tmp_32 = (z_second_limb_0_range_constraint_4 * SHIFT_12_TO_14 - z_second_limb_0_range_constraint_tail);
616 std::get<31>(accumulators) += Accumulator(tmp_32 * lagrange_even_in_minicircuit_scaled);
619 auto tmp_33 = (z_first_limb_1_range_constraint_4 * SHIFT_4_TO_14 - z_first_limb_1_range_constraint_tail);
620 std::get<32>(accumulators) += Accumulator(tmp_33 * lagrange_even_in_minicircuit_scaled);
623 auto tmp_34 = z_second_limb_1_range_constraint_4 * SHIFT_4_TO_14 - z_second_limb_1_range_constraint_tail;
624 std::get<33>(accumulators) += Accumulator(tmp_34 * lagrange_even_in_minicircuit_scaled);
627 auto tmp_35 = accumulator_limb_0_range_constraint_4 * SHIFT_12_TO_14 - accumulator_limb_0_range_constraint_tail;
628 std::get<34>(accumulators) += Accumulator(tmp_35 * lagrange_even_in_minicircuit_scaled);
631 auto tmp_36 = (accumulator_limb_1_range_constraint_4 * SHIFT_12_TO_14 - accumulator_limb_1_range_constraint_tail);
632 std::get<35>(accumulators) += Accumulator(tmp_36 * lagrange_even_in_minicircuit_scaled);
635 auto tmp_37 = (accumulator_limb_2_range_constraint_4 * SHIFT_12_TO_14 - accumulator_limb_2_range_constraint_tail);
636 std::get<36>(accumulators) += Accumulator(tmp_37 * lagrange_even_in_minicircuit_scaled);
639 auto tmp_38 = (accumulator_limb_3_range_constraint_3 * SHIFT_8_TO_14 - accumulator_limb_3_range_constraint_tail);
640 std::get<37>(accumulators) += Accumulator(tmp_38 * lagrange_even_in_minicircuit_scaled);
643 auto tmp_39 = (quotient_limb_0_range_constraint_4 * SHIFT_12_TO_14 - quotient_limb_0_range_constraint_tail);
644 std::get<38>(accumulators) += Accumulator(tmp_39 * lagrange_even_in_minicircuit_scaled);
647 auto tmp_40 = (quotient_limb_1_range_constraint_4 * SHIFT_12_TO_14 - quotient_limb_1_range_constraint_tail);
648 std::get<39>(accumulators) += Accumulator(tmp_40 * lagrange_even_in_minicircuit_scaled);
651 auto tmp_41 = (quotient_limb_2_range_constraint_4 * SHIFT_12_TO_14 - quotient_limb_2_range_constraint_tail);
652 std::get<40>(accumulators) += Accumulator(tmp_41 * lagrange_even_in_minicircuit_scaled);
655 auto tmp_42 = (quotient_limb_3_range_constraint_3 * SHIFT_10_TO_14 - quotient_limb_3_range_constraint_tail);
656 std::get<41>(accumulators) += Accumulator(tmp_42 * lagrange_even_in_minicircuit_scaled);
661 auto tmp_43 = (p_x_limb_0 + p_x_limb_1 * LIMB_SHIFT) - x_lo;
662 std::get<42>(accumulators) += Accumulator(tmp_43 * lagrange_even_in_minicircuit_scaled);
665 auto tmp_44 = (p_x_limb_2 + p_x_limb_3 * LIMB_SHIFT) - x_hi;
666 std::get<43>(accumulators) += Accumulator(tmp_44 * lagrange_even_in_minicircuit_scaled);
669 auto tmp_45 = (p_y_limb_0 + p_y_limb_1 * LIMB_SHIFT) - y_lo;
670 std::get<44>(accumulators) += Accumulator(tmp_45 * lagrange_even_in_minicircuit_scaled);
673 auto tmp_46 = (p_y_limb_2 + p_y_limb_3 * LIMB_SHIFT) - y_hi;
674 std::get<45>(accumulators) += Accumulator(tmp_46 * lagrange_even_in_minicircuit_scaled);
677 auto tmp_47 = (z_first_limb_0 + z_first_limb_1 * LIMB_SHIFT) - z_one;
678 std::get<46>(accumulators) += Accumulator(tmp_47 * lagrange_even_in_minicircuit_scaled);
681 auto tmp_48 = (z_second_limb_0 + z_second_limb_1 * LIMB_SHIFT) - z_two;
682 std::get<47>(accumulators) += Accumulator(tmp_48 * lagrange_even_in_minicircuit_scaled);