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);
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);
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);
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);
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) -
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) -
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) -
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) -
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) -
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) -
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) -
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) -
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) -
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) -
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) -
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) -
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);
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);
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);
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);
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);
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);
579 auto tmp_23 = p_x_limb_0_range_constraint_4 * SHIFT_12_TO_14 - p_x_limb_0_range_constraint_tail;
583 auto tmp_24 = p_x_limb_1_range_constraint_4 * SHIFT_12_TO_14 - p_x_limb_1_range_constraint_tail;
587 auto tmp_25 = p_x_limb_2_range_constraint_4 * SHIFT_12_TO_14 - p_x_limb_2_range_constraint_tail;
591 auto tmp_26 = p_x_limb_3_range_constraint_3 * SHIFT_8_TO_14 - p_x_limb_3_range_constraint_tail;
595 auto tmp_27 = p_y_limb_0_range_constraint_4 * SHIFT_12_TO_14 - p_y_limb_0_range_constraint_tail;
599 auto tmp_28 = p_y_limb_1_range_constraint_4 * SHIFT_12_TO_14 - p_y_limb_1_range_constraint_tail;
603 auto tmp_29 = p_y_limb_2_range_constraint_4 * SHIFT_12_TO_14 - p_y_limb_2_range_constraint_tail;
607 auto tmp_30 = p_y_limb_3_range_constraint_3 * SHIFT_8_TO_14 - p_y_limb_3_range_constraint_tail;
611 auto tmp_31 = (z_first_limb_0_range_constraint_4 * SHIFT_12_TO_14 - z_first_limb_0_range_constraint_tail);
615 auto tmp_32 = (z_second_limb_0_range_constraint_4 * SHIFT_12_TO_14 - z_second_limb_0_range_constraint_tail);
619 auto tmp_33 = (z_first_limb_1_range_constraint_4 * SHIFT_4_TO_14 - z_first_limb_1_range_constraint_tail);
623 auto tmp_34 = z_second_limb_1_range_constraint_4 * SHIFT_4_TO_14 - z_second_limb_1_range_constraint_tail;
627 auto tmp_35 = accumulator_limb_0_range_constraint_4 * SHIFT_12_TO_14 - accumulator_limb_0_range_constraint_tail;
631 auto tmp_36 = (accumulator_limb_1_range_constraint_4 * SHIFT_12_TO_14 - accumulator_limb_1_range_constraint_tail);
635 auto tmp_37 = (accumulator_limb_2_range_constraint_4 * SHIFT_12_TO_14 - accumulator_limb_2_range_constraint_tail);
639 auto tmp_38 = (accumulator_limb_3_range_constraint_3 * SHIFT_8_TO_14 - accumulator_limb_3_range_constraint_tail);
643 auto tmp_39 = (quotient_limb_0_range_constraint_4 * SHIFT_12_TO_14 - quotient_limb_0_range_constraint_tail);
647 auto tmp_40 = (quotient_limb_1_range_constraint_4 * SHIFT_12_TO_14 - quotient_limb_1_range_constraint_tail);
651 auto tmp_41 = (quotient_limb_2_range_constraint_4 * SHIFT_12_TO_14 - quotient_limb_2_range_constraint_tail);
655 auto tmp_42 = (quotient_limb_3_range_constraint_3 * SHIFT_10_TO_14 - quotient_limb_3_range_constraint_tail);
661 auto tmp_43 = (p_x_limb_0 + p_x_limb_1 * LIMB_SHIFT) - x_lo;
665 auto tmp_44 = (p_x_limb_2 + p_x_limb_3 * LIMB_SHIFT) - x_hi;
669 auto tmp_45 = (p_y_limb_0 + p_y_limb_1 * LIMB_SHIFT) - y_lo;
673 auto tmp_46 = (p_y_limb_2 + p_y_limb_3 * LIMB_SHIFT) - y_hi;
677 auto tmp_47 = (z_first_limb_0 + z_first_limb_1 * LIMB_SHIFT) - z_one;
681 auto tmp_48 = (z_second_limb_0 + z_second_limb_1 * LIMB_SHIFT) - z_two;