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;
53 using View =
typename Accumulator::View;
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 = 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 tmp_1 *= not_even_or_no_op_scaled;
106 ((accumulator_limb_1_range_constraint_0 +
107 accumulator_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
108 accumulator_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
109 accumulator_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
110 accumulator_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
111 accumulators_binary_limbs_1);
112 tmp_2 *= not_even_or_no_op_scaled;
117 ((accumulator_limb_2_range_constraint_0 +
118 accumulator_limb_2_range_constraint_1 * MICRO_LIMB_SHIFT +
119 accumulator_limb_2_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
120 accumulator_limb_2_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
121 accumulator_limb_2_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
122 accumulators_binary_limbs_2);
123 tmp_3 *= not_even_or_no_op_scaled;
128 ((accumulator_limb_3_range_constraint_0 +
129 accumulator_limb_3_range_constraint_1 * MICRO_LIMB_SHIFT +
130 accumulator_limb_3_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
131 accumulator_limb_3_range_constraint_3 * MICRO_LIMB_SHIFTx3) -
132 accumulators_binary_limbs_3);
133 tmp_4 *= not_even_or_no_op_scaled;
140 using View =
typename Accumulator::View;
143 const auto LIMB_SHIFT =
FF(
uint256_t(1) << NUM_LIMB_BITS);
147 auto accumulator_limb_0_range_constraint_4 = View(in.accumulator_low_limbs_range_constraint_4);
148 auto accumulator_limb_1_range_constraint_4 = View(in.accumulator_low_limbs_range_constraint_4_shift);
149 auto accumulator_limb_2_range_constraint_4 = View(in.accumulator_high_limbs_range_constraint_4);
161 static const auto SHIFT_12_TO_14 =
FF(4);
162 static const auto SHIFT_10_TO_14 =
FF(16);
163 static const auto SHIFT_8_TO_14 =
FF(64);
164 static const auto SHIFT_4_TO_14 =
FF(1024);
178 auto p_x_limb_0 = View(in.p_x_low_limbs);
179 auto p_x_limb_0_range_constraint_0 = View(in.p_x_low_limbs_range_constraint_0);
180 auto p_x_limb_0_range_constraint_1 = View(in.p_x_low_limbs_range_constraint_1);
181 auto p_x_limb_0_range_constraint_2 = View(in.p_x_low_limbs_range_constraint_2);
182 auto p_x_limb_0_range_constraint_3 = View(in.p_x_low_limbs_range_constraint_3);
183 auto p_x_limb_0_range_constraint_4 = View(in.p_x_low_limbs_range_constraint_4);
187 auto p_x_limb_1 = View(in.p_x_low_limbs_shift);
188 auto p_x_limb_1_range_constraint_0 = View(in.p_x_low_limbs_range_constraint_0_shift);
189 auto p_x_limb_1_range_constraint_1 = View(in.p_x_low_limbs_range_constraint_1_shift);
190 auto p_x_limb_1_range_constraint_2 = View(in.p_x_low_limbs_range_constraint_2_shift);
191 auto p_x_limb_1_range_constraint_3 = View(in.p_x_low_limbs_range_constraint_3_shift);
192 auto p_x_limb_1_range_constraint_4 = View(in.p_x_low_limbs_range_constraint_4_shift);
196 auto p_x_limb_2 = View(in.p_x_high_limbs);
197 auto p_x_limb_2_range_constraint_0 = View(in.p_x_high_limbs_range_constraint_0);
198 auto p_x_limb_2_range_constraint_1 = View(in.p_x_high_limbs_range_constraint_1);
199 auto p_x_limb_2_range_constraint_2 = View(in.p_x_high_limbs_range_constraint_2);
200 auto p_x_limb_2_range_constraint_3 = View(in.p_x_high_limbs_range_constraint_3);
201 auto p_x_limb_2_range_constraint_4 = View(in.p_x_high_limbs_range_constraint_4);
205 auto p_x_limb_3 = View(in.p_x_high_limbs_shift);
206 auto p_x_limb_3_range_constraint_0 = View(in.p_x_high_limbs_range_constraint_0_shift);
207 auto p_x_limb_3_range_constraint_1 = View(in.p_x_high_limbs_range_constraint_1_shift);
208 auto p_x_limb_3_range_constraint_2 = View(in.p_x_high_limbs_range_constraint_2_shift);
209 auto p_x_limb_3_range_constraint_3 = View(in.p_x_high_limbs_range_constraint_3_shift);
213 auto p_y_limb_0 = View(in.p_y_low_limbs);
214 auto p_y_limb_0_range_constraint_0 = View(in.p_y_low_limbs_range_constraint_0);
215 auto p_y_limb_0_range_constraint_1 = View(in.p_y_low_limbs_range_constraint_1);
216 auto p_y_limb_0_range_constraint_2 = View(in.p_y_low_limbs_range_constraint_2);
217 auto p_y_limb_0_range_constraint_3 = View(in.p_y_low_limbs_range_constraint_3);
218 auto p_y_limb_0_range_constraint_4 = View(in.p_y_low_limbs_range_constraint_4);
222 auto p_y_limb_1 = View(in.p_y_low_limbs_shift);
223 auto p_y_limb_1_range_constraint_0 = View(in.p_y_low_limbs_range_constraint_0_shift);
224 auto p_y_limb_1_range_constraint_1 = View(in.p_y_low_limbs_range_constraint_1_shift);
225 auto p_y_limb_1_range_constraint_2 = View(in.p_y_low_limbs_range_constraint_2_shift);
226 auto p_y_limb_1_range_constraint_3 = View(in.p_y_low_limbs_range_constraint_3_shift);
227 auto p_y_limb_1_range_constraint_4 = View(in.p_y_low_limbs_range_constraint_4_shift);
231 auto p_y_limb_2 = View(in.p_y_high_limbs);
232 auto p_y_limb_2_range_constraint_0 = View(in.p_y_high_limbs_range_constraint_0);
233 auto p_y_limb_2_range_constraint_1 = View(in.p_y_high_limbs_range_constraint_1);
234 auto p_y_limb_2_range_constraint_2 = View(in.p_y_high_limbs_range_constraint_2);
235 auto p_y_limb_2_range_constraint_3 = View(in.p_y_high_limbs_range_constraint_3);
236 auto p_y_limb_2_range_constraint_4 = View(in.p_y_high_limbs_range_constraint_4);
240 auto p_y_limb_3 = View(in.p_y_high_limbs_shift);
241 auto p_y_limb_3_range_constraint_0 = View(in.p_y_high_limbs_range_constraint_0_shift);
242 auto p_y_limb_3_range_constraint_1 = View(in.p_y_high_limbs_range_constraint_1_shift);
243 auto p_y_limb_3_range_constraint_2 = View(in.p_y_high_limbs_range_constraint_2_shift);
244 auto p_y_limb_3_range_constraint_3 = View(in.p_y_high_limbs_range_constraint_3_shift);
248 auto z_first_limb_0 = View(in.z_low_limbs);
249 auto z_first_limb_0_range_constraint_0 = View(in.z_low_limbs_range_constraint_0);
250 auto z_first_limb_0_range_constraint_1 = View(in.z_low_limbs_range_constraint_1);
251 auto z_first_limb_0_range_constraint_2 = View(in.z_low_limbs_range_constraint_2);
252 auto z_first_limb_0_range_constraint_3 = View(in.z_low_limbs_range_constraint_3);
253 auto z_first_limb_0_range_constraint_4 = View(in.z_low_limbs_range_constraint_4);
257 auto z_second_limb_0 = View(in.z_low_limbs_shift);
258 auto z_second_limb_0_range_constraint_0 = View(in.z_low_limbs_range_constraint_0_shift);
259 auto z_second_limb_0_range_constraint_1 = View(in.z_low_limbs_range_constraint_1_shift);
260 auto z_second_limb_0_range_constraint_2 = View(in.z_low_limbs_range_constraint_2_shift);
261 auto z_second_limb_0_range_constraint_3 = View(in.z_low_limbs_range_constraint_3_shift);
262 auto z_second_limb_0_range_constraint_4 = View(in.z_low_limbs_range_constraint_4_shift);
266 auto z_first_limb_1 = View(in.z_high_limbs);
267 auto z_first_limb_1_range_constraint_0 = View(in.z_high_limbs_range_constraint_0);
268 auto z_first_limb_1_range_constraint_1 = View(in.z_high_limbs_range_constraint_1);
269 auto z_first_limb_1_range_constraint_2 = View(in.z_high_limbs_range_constraint_2);
270 auto z_first_limb_1_range_constraint_3 = View(in.z_high_limbs_range_constraint_3);
271 auto z_first_limb_1_range_constraint_4 = View(in.z_high_limbs_range_constraint_4);
275 auto z_second_limb_1 = View(in.z_high_limbs_shift);
276 auto z_second_limb_1_range_constraint_0 = View(in.z_high_limbs_range_constraint_0_shift);
277 auto z_second_limb_1_range_constraint_1 = View(in.z_high_limbs_range_constraint_1_shift);
278 auto z_second_limb_1_range_constraint_2 = View(in.z_high_limbs_range_constraint_2_shift);
279 auto z_second_limb_1_range_constraint_3 = View(in.z_high_limbs_range_constraint_3_shift);
280 auto z_second_limb_1_range_constraint_4 = View(in.z_high_limbs_range_constraint_4_shift);
284 auto quotient_binary_limbs_0 = View(in.quotient_low_binary_limbs);
285 auto quotient_limb_0_range_constraint_0 = View(in.quotient_low_limbs_range_constraint_0);
286 auto quotient_limb_0_range_constraint_1 = View(in.quotient_low_limbs_range_constraint_1);
287 auto quotient_limb_0_range_constraint_2 = View(in.quotient_low_limbs_range_constraint_2);
288 auto quotient_limb_0_range_constraint_3 = View(in.quotient_low_limbs_range_constraint_3);
289 auto quotient_limb_0_range_constraint_4 = View(in.quotient_low_limbs_range_constraint_4);
293 auto quotient_binary_limbs_1 = View(in.quotient_low_binary_limbs_shift);
294 auto quotient_limb_1_range_constraint_0 = View(in.quotient_low_limbs_range_constraint_0_shift);
295 auto quotient_limb_1_range_constraint_1 = View(in.quotient_low_limbs_range_constraint_1_shift);
296 auto quotient_limb_1_range_constraint_2 = View(in.quotient_low_limbs_range_constraint_2_shift);
297 auto quotient_limb_1_range_constraint_3 = View(in.quotient_low_limbs_range_constraint_3_shift);
298 auto quotient_limb_1_range_constraint_4 = View(in.quotient_low_limbs_range_constraint_4_shift);
302 auto quotient_binary_limbs_2 = View(in.quotient_high_binary_limbs);
303 auto quotient_limb_2_range_constraint_0 = View(in.quotient_high_limbs_range_constraint_0);
304 auto quotient_limb_2_range_constraint_1 = View(in.quotient_high_limbs_range_constraint_1);
305 auto quotient_limb_2_range_constraint_2 = View(in.quotient_high_limbs_range_constraint_2);
306 auto quotient_limb_2_range_constraint_3 = View(in.quotient_high_limbs_range_constraint_3);
307 auto quotient_limb_2_range_constraint_4 = View(in.quotient_high_limbs_range_constraint_4);
311 auto quotient_binary_limbs_3 = View(in.quotient_high_binary_limbs_shift);
312 auto quotient_limb_3_range_constraint_0 = View(in.quotient_high_limbs_range_constraint_0_shift);
313 auto quotient_limb_3_range_constraint_1 = View(in.quotient_high_limbs_range_constraint_1_shift);
314 auto quotient_limb_3_range_constraint_2 = View(in.quotient_high_limbs_range_constraint_2_shift);
315 auto quotient_limb_3_range_constraint_3 = View(in.quotient_high_limbs_range_constraint_3_shift);
319 auto relation_wide_limbs_lo = View(in.relation_wide_limbs);
320 auto relation_wide_limbs_lo_range_constraint_0 = View(in.relation_wide_limbs_range_constraint_0);
321 auto relation_wide_limbs_lo_range_constraint_1 = View(in.relation_wide_limbs_range_constraint_1);
322 auto relation_wide_limbs_lo_range_constraint_2 = View(in.relation_wide_limbs_range_constraint_2);
323 auto relation_wide_limbs_lo_range_constraint_3 = View(in.relation_wide_limbs_range_constraint_3);
326 auto relation_wide_limbs_lo_range_constraint_4 = View(in.p_x_high_limbs_range_constraint_tail_shift);
327 auto relation_wide_limbs_lo_range_constraint_5 = View(in.accumulator_high_limbs_range_constraint_tail_shift);
331 auto relation_wide_limbs_hi = View(in.relation_wide_limbs_shift);
332 auto relation_wide_limbs_hi_range_constraint_0 = View(in.relation_wide_limbs_range_constraint_0_shift);
333 auto relation_wide_limbs_hi_range_constraint_1 = View(in.relation_wide_limbs_range_constraint_1_shift);
334 auto relation_wide_limbs_hi_range_constraint_2 = View(in.relation_wide_limbs_range_constraint_2_shift);
335 auto relation_wide_limbs_hi_range_constraint_3 = View(in.relation_wide_limbs_range_constraint_3_shift);
338 auto relation_wide_limbs_hi_range_constraint_4 = View(in.p_y_high_limbs_range_constraint_tail_shift);
339 auto relation_wide_limbs_hi_range_constraint_5 = View(in.quotient_high_limbs_range_constraint_tail_shift);
343 auto p_x_limb_0_range_constraint_tail = View(in.p_x_low_limbs_range_constraint_tail);
344 auto p_x_limb_1_range_constraint_tail = View(in.p_x_low_limbs_range_constraint_tail_shift);
345 auto p_x_limb_2_range_constraint_tail = View(in.p_x_high_limbs_range_constraint_tail);
348 auto p_x_limb_3_range_constraint_tail = View(in.p_x_high_limbs_range_constraint_4_shift);
351 auto p_y_limb_0_range_constraint_tail = View(in.p_y_low_limbs_range_constraint_tail);
352 auto p_y_limb_1_range_constraint_tail = View(in.p_y_low_limbs_range_constraint_tail_shift);
353 auto p_y_limb_2_range_constraint_tail = View(in.p_y_high_limbs_range_constraint_tail);
356 auto p_y_limb_3_range_constraint_tail = View(in.p_y_high_limbs_range_constraint_4_shift);
359 auto z_first_limb_0_range_constraint_tail = View(in.z_low_limbs_range_constraint_tail);
360 auto z_second_limb_0_range_constraint_tail = View(in.z_low_limbs_range_constraint_tail_shift);
361 auto z_first_limb_1_range_constraint_tail = View(in.z_high_limbs_range_constraint_tail);
362 auto z_second_limb_1_range_constraint_tail = View(in.z_high_limbs_range_constraint_tail_shift);
366 auto accumulator_limb_0_range_constraint_tail = View(in.accumulator_low_limbs_range_constraint_tail);
367 auto accumulator_limb_1_range_constraint_tail = View(in.accumulator_low_limbs_range_constraint_tail_shift);
368 auto accumulator_limb_2_range_constraint_tail = View(in.accumulator_high_limbs_range_constraint_tail);
372 auto accumulator_limb_3_range_constraint_3 = View(in.accumulator_high_limbs_range_constraint_3_shift);
373 auto accumulator_limb_3_range_constraint_tail = View(in.accumulator_high_limbs_range_constraint_4_shift);
377 auto quotient_limb_0_range_constraint_tail = View(in.quotient_low_limbs_range_constraint_tail);
378 auto quotient_limb_1_range_constraint_tail = View(in.quotient_low_limbs_range_constraint_tail_shift);
379 auto quotient_limb_2_range_constraint_tail = View(in.quotient_high_limbs_range_constraint_tail);
380 auto quotient_limb_3_range_constraint_tail = View(in.quotient_high_limbs_range_constraint_4_shift);
386 auto x_lo = View(in.x_lo_y_hi);
387 auto y_hi = View(in.x_lo_y_hi_shift);
388 auto x_hi = View(in.x_hi_z_1);
389 auto z_one = View(in.x_hi_z_1_shift);
390 auto y_lo = View(in.y_lo_z_2);
391 auto z_two = View(in.y_lo_z_2_shift);
392 auto lagrange_even_in_minicircuit = View(in.lagrange_even_in_minicircuit);
397 ((p_y_limb_0_range_constraint_0 +
398 p_y_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
399 p_y_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
400 p_y_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
401 p_y_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
403 tmp_5 *= lagrange_even_in_minicircuit;
404 tmp_5 *= scaling_factor;
409 ((p_y_limb_1_range_constraint_0 +
410 p_y_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
411 p_y_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
412 p_y_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
413 p_y_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
415 tmp_6 *= lagrange_even_in_minicircuit;
416 tmp_6 *= scaling_factor;
421 ((p_y_limb_2_range_constraint_0 +
422 p_y_limb_2_range_constraint_1 * MICRO_LIMB_SHIFT +
423 p_y_limb_2_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
424 p_y_limb_2_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
425 p_y_limb_2_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
427 tmp_7 *= lagrange_even_in_minicircuit;
428 tmp_7 *= scaling_factor;
433 ((p_y_limb_3_range_constraint_0 +
434 p_y_limb_3_range_constraint_1 * MICRO_LIMB_SHIFT +
435 p_y_limb_3_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
436 p_y_limb_3_range_constraint_3 * MICRO_LIMB_SHIFTx3) -
438 tmp_8 *= lagrange_even_in_minicircuit;
439 tmp_8 *= scaling_factor;
444 ((z_first_limb_0_range_constraint_0 +
445 z_first_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
446 z_first_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
447 z_first_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
448 z_first_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
450 tmp_9 *= lagrange_even_in_minicircuit;
451 tmp_9 *= scaling_factor;
456 ((z_second_limb_0_range_constraint_0 +
457 z_second_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
458 z_second_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
459 z_second_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
460 z_second_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
462 tmp_10 *= lagrange_even_in_minicircuit;
463 tmp_10 *= scaling_factor;
468 ((z_first_limb_1_range_constraint_0 +
469 z_first_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
470 z_first_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
471 z_first_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
472 z_first_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
474 tmp_11 *= lagrange_even_in_minicircuit;
475 tmp_11 *= scaling_factor;
480 ((z_second_limb_1_range_constraint_0 +
481 z_second_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
482 z_second_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
483 z_second_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
484 z_second_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
486 tmp_12 *= lagrange_even_in_minicircuit;
487 tmp_12 *= scaling_factor;
493 ((p_x_limb_0_range_constraint_0 +
494 p_x_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
495 p_x_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
496 p_x_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
497 p_x_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
499 tmp_13 *= lagrange_even_in_minicircuit;
500 tmp_13 *= scaling_factor;
505 ((p_x_limb_1_range_constraint_0 +
506 p_x_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
507 p_x_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
508 p_x_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
509 p_x_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
511 tmp_14 *= lagrange_even_in_minicircuit;
512 tmp_14 *= scaling_factor;
517 ((p_x_limb_2_range_constraint_0 +
518 p_x_limb_2_range_constraint_1 * MICRO_LIMB_SHIFT +
519 p_x_limb_2_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
520 p_x_limb_2_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
521 p_x_limb_2_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
523 tmp_15 *= lagrange_even_in_minicircuit;
524 tmp_15 *= scaling_factor;
529 ((p_x_limb_3_range_constraint_0 +
530 p_x_limb_3_range_constraint_1 * MICRO_LIMB_SHIFT +
531 p_x_limb_3_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
532 p_x_limb_3_range_constraint_3 * MICRO_LIMB_SHIFTx3) -
534 tmp_16 *= lagrange_even_in_minicircuit;
535 tmp_16 *= scaling_factor;
540 ((quotient_limb_0_range_constraint_0 +
541 quotient_limb_0_range_constraint_1 * MICRO_LIMB_SHIFT +
542 quotient_limb_0_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
543 quotient_limb_0_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
544 quotient_limb_0_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
545 quotient_binary_limbs_0);
546 tmp_17 *= lagrange_even_in_minicircuit;
547 tmp_17 *= scaling_factor;
552 ((quotient_limb_1_range_constraint_0 +
553 quotient_limb_1_range_constraint_1 * MICRO_LIMB_SHIFT +
554 quotient_limb_1_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
555 quotient_limb_1_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
556 quotient_limb_1_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
557 quotient_binary_limbs_1);
558 tmp_18 *= lagrange_even_in_minicircuit;
559 tmp_18 *= scaling_factor;
564 ((quotient_limb_2_range_constraint_0 +
565 quotient_limb_2_range_constraint_1 * MICRO_LIMB_SHIFT +
566 quotient_limb_2_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
567 quotient_limb_2_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
568 quotient_limb_2_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
569 quotient_binary_limbs_2);
570 tmp_19 *= lagrange_even_in_minicircuit;
571 tmp_19 *= scaling_factor;
576 ((quotient_limb_3_range_constraint_0 +
577 quotient_limb_3_range_constraint_1 * MICRO_LIMB_SHIFT +
578 quotient_limb_3_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
579 quotient_limb_3_range_constraint_3 * MICRO_LIMB_SHIFTx3) -
580 quotient_binary_limbs_3);
581 tmp_20 *= lagrange_even_in_minicircuit;
582 tmp_20 *= scaling_factor;
590 ((relation_wide_limbs_lo_range_constraint_0 +
591 relation_wide_limbs_lo_range_constraint_1 * MICRO_LIMB_SHIFT +
592 relation_wide_limbs_lo_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
593 relation_wide_limbs_lo_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
594 relation_wide_limbs_lo_range_constraint_4 * MICRO_LIMB_SHIFTx4 +
595 relation_wide_limbs_lo_range_constraint_5 * MICRO_LIMB_SHIFTx5) -
596 relation_wide_limbs_lo);
597 tmp_21 *= lagrange_even_in_minicircuit;
598 tmp_21 *= scaling_factor;
603 ((relation_wide_limbs_hi_range_constraint_0 +
604 relation_wide_limbs_hi_range_constraint_1 * MICRO_LIMB_SHIFT +
605 relation_wide_limbs_hi_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
606 relation_wide_limbs_hi_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
607 relation_wide_limbs_hi_range_constraint_4 * MICRO_LIMB_SHIFTx4 +
608 relation_wide_limbs_hi_range_constraint_5 * MICRO_LIMB_SHIFTx5) -
609 relation_wide_limbs_hi);
610 tmp_22 *= lagrange_even_in_minicircuit;
611 tmp_22 *= scaling_factor;
618 auto tmp_23 = p_x_limb_0_range_constraint_4 * SHIFT_12_TO_14 - p_x_limb_0_range_constraint_tail;
619 tmp_23 *= lagrange_even_in_minicircuit;
620 tmp_23 *= scaling_factor;
624 auto tmp_24 = p_x_limb_1_range_constraint_4 * SHIFT_12_TO_14 - p_x_limb_1_range_constraint_tail;
625 tmp_24 *= lagrange_even_in_minicircuit;
626 tmp_24 *= scaling_factor;
630 auto tmp_25 = p_x_limb_2_range_constraint_4 * SHIFT_12_TO_14 - p_x_limb_2_range_constraint_tail;
631 tmp_25 *= lagrange_even_in_minicircuit;
632 tmp_25 *= scaling_factor;
636 auto tmp_26 = p_x_limb_3_range_constraint_3 * SHIFT_8_TO_14 - p_x_limb_3_range_constraint_tail;
637 tmp_26 *= lagrange_even_in_minicircuit;
638 tmp_26 *= scaling_factor;
642 auto tmp_27 = p_y_limb_0_range_constraint_4 * SHIFT_12_TO_14 - p_y_limb_0_range_constraint_tail;
643 tmp_27 *= lagrange_even_in_minicircuit;
644 tmp_27 *= scaling_factor;
648 auto tmp_28 = p_y_limb_1_range_constraint_4 * SHIFT_12_TO_14 - p_y_limb_1_range_constraint_tail;
649 tmp_28 *= lagrange_even_in_minicircuit;
650 tmp_28 *= scaling_factor;
654 auto tmp_29 = p_y_limb_2_range_constraint_4 * SHIFT_12_TO_14 - p_y_limb_2_range_constraint_tail;
655 tmp_29 *= lagrange_even_in_minicircuit;
656 tmp_29 *= scaling_factor;
660 auto tmp_30 = p_y_limb_3_range_constraint_3 * SHIFT_8_TO_14 - p_y_limb_3_range_constraint_tail;
661 tmp_30 *= lagrange_even_in_minicircuit;
662 tmp_30 *= scaling_factor;
666 auto tmp_31 = (z_first_limb_0_range_constraint_4 * SHIFT_12_TO_14 - z_first_limb_0_range_constraint_tail);
667 tmp_31 *= lagrange_even_in_minicircuit;
668 tmp_31 *= scaling_factor;
672 auto tmp_32 = (z_second_limb_0_range_constraint_4 * SHIFT_12_TO_14 - z_second_limb_0_range_constraint_tail);
673 tmp_32 *= lagrange_even_in_minicircuit;
674 tmp_32 *= scaling_factor;
678 auto tmp_33 = (z_first_limb_1_range_constraint_4 * SHIFT_4_TO_14 - z_first_limb_1_range_constraint_tail);
679 tmp_33 *= lagrange_even_in_minicircuit;
680 tmp_33 *= scaling_factor;
684 auto tmp_34 = z_second_limb_1_range_constraint_4 * SHIFT_4_TO_14 - z_second_limb_1_range_constraint_tail;
685 tmp_34 *= lagrange_even_in_minicircuit;
686 tmp_34 *= scaling_factor;
690 auto tmp_35 = accumulator_limb_0_range_constraint_4 * SHIFT_12_TO_14 - accumulator_limb_0_range_constraint_tail;
691 tmp_35 *= lagrange_even_in_minicircuit;
692 tmp_35 *= scaling_factor;
696 auto tmp_36 = (accumulator_limb_1_range_constraint_4 * SHIFT_12_TO_14 - accumulator_limb_1_range_constraint_tail);
697 tmp_36 *= lagrange_even_in_minicircuit;
698 tmp_36 *= scaling_factor;
702 auto tmp_37 = (accumulator_limb_2_range_constraint_4 * SHIFT_12_TO_14 - accumulator_limb_2_range_constraint_tail);
703 tmp_37 *= lagrange_even_in_minicircuit;
704 tmp_37 *= scaling_factor;
708 auto tmp_38 = (accumulator_limb_3_range_constraint_3 * SHIFT_8_TO_14 - accumulator_limb_3_range_constraint_tail);
709 tmp_38 *= lagrange_even_in_minicircuit;
710 tmp_38 *= scaling_factor;
714 auto tmp_39 = (quotient_limb_0_range_constraint_4 * SHIFT_12_TO_14 - quotient_limb_0_range_constraint_tail);
715 tmp_39 *= lagrange_even_in_minicircuit;
716 tmp_39 *= scaling_factor;
720 auto tmp_40 = (quotient_limb_1_range_constraint_4 * SHIFT_12_TO_14 - quotient_limb_1_range_constraint_tail);
721 tmp_40 *= lagrange_even_in_minicircuit;
722 tmp_40 *= scaling_factor;
726 auto tmp_41 = (quotient_limb_2_range_constraint_4 * SHIFT_12_TO_14 - quotient_limb_2_range_constraint_tail);
727 tmp_41 *= lagrange_even_in_minicircuit;
728 tmp_41 *= scaling_factor;
732 auto tmp_42 = (quotient_limb_3_range_constraint_3 * SHIFT_10_TO_14 - quotient_limb_3_range_constraint_tail);
733 tmp_42 *= lagrange_even_in_minicircuit;
734 tmp_42 *= scaling_factor;
740 auto tmp_43 = (p_x_limb_0 + p_x_limb_1 * LIMB_SHIFT) - x_lo;
741 tmp_43 *= lagrange_even_in_minicircuit;
742 tmp_43 *= scaling_factor;
746 auto tmp_44 = (p_x_limb_2 + p_x_limb_3 * LIMB_SHIFT) - x_hi;
747 tmp_44 *= lagrange_even_in_minicircuit;
748 tmp_44 *= scaling_factor;
752 auto tmp_45 = (p_y_limb_0 + p_y_limb_1 * LIMB_SHIFT) - y_lo;
753 tmp_45 *= lagrange_even_in_minicircuit;
754 tmp_45 *= scaling_factor;
758 auto tmp_46 = (p_y_limb_2 + p_y_limb_3 * LIMB_SHIFT) - y_hi;
759 tmp_46 *= lagrange_even_in_minicircuit;
760 tmp_46 *= scaling_factor;
764 auto tmp_47 = (z_first_limb_0 + z_first_limb_1 * LIMB_SHIFT) - z_one;
765 tmp_47 *= lagrange_even_in_minicircuit;
766 tmp_47 *= scaling_factor;
770 auto tmp_48 = (z_second_limb_0 + z_second_limb_1 * LIMB_SHIFT) - z_two;
771 tmp_48 *= lagrange_even_in_minicircuit;
772 tmp_48 *= scaling_factor;