33 const AllEntities& in,
35 const FF& scaling_factor)
37 static constexpr size_t NUM_LIMB_BITS = 68;
38 static constexpr size_t NUM_MICRO_LIMB_BITS = 14;
44 using View =
typename Accumulator::View;
47 static auto MICRO_LIMB_SHIFT =
FF(
uint256_t(1) << NUM_MICRO_LIMB_BITS);
48 static auto MICRO_LIMB_SHIFTx2 = MICRO_LIMB_SHIFT * MICRO_LIMB_SHIFT;
49 static auto MICRO_LIMB_SHIFTx3 = MICRO_LIMB_SHIFTx2 * MICRO_LIMB_SHIFT;
50 static auto MICRO_LIMB_SHIFTx4 = MICRO_LIMB_SHIFTx3 * MICRO_LIMB_SHIFT;
52 auto accumulators_binary_limbs_0 = View(in.accumulators_binary_limbs_0);
53 auto accumulators_binary_limbs_1 = View(in.accumulators_binary_limbs_1);
54 auto accumulators_binary_limbs_2 = View(in.accumulators_binary_limbs_2);
55 auto accumulators_binary_limbs_3 = View(in.accumulators_binary_limbs_3);
56 auto accumulator_low_limbs_range_constraint_0 = View(in.accumulator_low_limbs_range_constraint_0);
57 auto accumulator_low_limbs_range_constraint_1 = View(in.accumulator_low_limbs_range_constraint_1);
58 auto accumulator_low_limbs_range_constraint_2 = View(in.accumulator_low_limbs_range_constraint_2);
59 auto accumulator_low_limbs_range_constraint_3 = View(in.accumulator_low_limbs_range_constraint_3);
60 auto accumulator_low_limbs_range_constraint_4 = View(in.accumulator_low_limbs_range_constraint_4);
61 auto accumulator_low_limbs_range_constraint_0_shift = View(in.accumulator_low_limbs_range_constraint_0_shift);
62 auto accumulator_low_limbs_range_constraint_1_shift = View(in.accumulator_low_limbs_range_constraint_1_shift);
63 auto accumulator_low_limbs_range_constraint_2_shift = View(in.accumulator_low_limbs_range_constraint_2_shift);
64 auto accumulator_low_limbs_range_constraint_3_shift = View(in.accumulator_low_limbs_range_constraint_3_shift);
65 auto accumulator_low_limbs_range_constraint_4_shift = View(in.accumulator_low_limbs_range_constraint_4_shift);
66 auto accumulator_high_limbs_range_constraint_0 = View(in.accumulator_high_limbs_range_constraint_0);
67 auto accumulator_high_limbs_range_constraint_1 = View(in.accumulator_high_limbs_range_constraint_1);
68 auto accumulator_high_limbs_range_constraint_2 = View(in.accumulator_high_limbs_range_constraint_2);
69 auto accumulator_high_limbs_range_constraint_3 = View(in.accumulator_high_limbs_range_constraint_3);
70 auto accumulator_high_limbs_range_constraint_4 = View(in.accumulator_high_limbs_range_constraint_4);
71 auto accumulator_high_limbs_range_constraint_0_shift = View(in.accumulator_high_limbs_range_constraint_0_shift);
72 auto accumulator_high_limbs_range_constraint_1_shift = View(in.accumulator_high_limbs_range_constraint_1_shift);
73 auto accumulator_high_limbs_range_constraint_2_shift = View(in.accumulator_high_limbs_range_constraint_2_shift);
74 auto accumulator_high_limbs_range_constraint_3_shift = View(in.accumulator_high_limbs_range_constraint_3_shift);
75 auto op = View(in.op);
76 auto lagrange_even_in_minicircuit = View(in.lagrange_even_in_minicircuit);
77 auto not_even_or_no_op_scaled = lagrange_even_in_minicircuit * op * scaling_factor;
81 ((accumulator_low_limbs_range_constraint_0 + accumulator_low_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
82 accumulator_low_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
83 accumulator_low_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
84 accumulator_low_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
85 accumulators_binary_limbs_0);
86 tmp_1 *= not_even_or_no_op_scaled;
90 auto tmp_2 = ((accumulator_low_limbs_range_constraint_0_shift +
91 accumulator_low_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
92 accumulator_low_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
93 accumulator_low_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
94 accumulator_low_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
95 accumulators_binary_limbs_1);
96 tmp_2 *= not_even_or_no_op_scaled;
101 ((accumulator_high_limbs_range_constraint_0 + accumulator_high_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
102 accumulator_high_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
103 accumulator_high_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
104 accumulator_high_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
105 accumulators_binary_limbs_2);
106 tmp_3 *= not_even_or_no_op_scaled;
110 auto tmp_4 = ((accumulator_high_limbs_range_constraint_0_shift +
111 accumulator_high_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
112 accumulator_high_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
113 accumulator_high_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3) -
114 accumulators_binary_limbs_3);
115 tmp_4 *= not_even_or_no_op_scaled;
121 using View =
typename Accumulator::View;
124 static auto LIMB_SHIFT =
FF(
uint256_t(1) << NUM_LIMB_BITS);
127 static auto MICRO_LIMB_SHIFT =
FF(
uint256_t(1) << NUM_MICRO_LIMB_BITS);
128 static auto MICRO_LIMB_SHIFTx2 = MICRO_LIMB_SHIFT * MICRO_LIMB_SHIFT;
129 static auto MICRO_LIMB_SHIFTx3 = MICRO_LIMB_SHIFTx2 * MICRO_LIMB_SHIFT;
130 static auto MICRO_LIMB_SHIFTx4 = MICRO_LIMB_SHIFTx3 * MICRO_LIMB_SHIFT;
131 static auto MICRO_LIMB_SHIFTx5 = MICRO_LIMB_SHIFTx4 * MICRO_LIMB_SHIFT;
133 auto accumulator_low_limbs_range_constraint_4 = View(in.accumulator_low_limbs_range_constraint_4);
134 auto accumulator_low_limbs_range_constraint_4_shift = View(in.accumulator_low_limbs_range_constraint_4_shift);
135 auto accumulator_high_limbs_range_constraint_4 = View(in.accumulator_high_limbs_range_constraint_4);
138 static auto SHIFT_12_TO_14 =
140 static auto SHIFT_10_TO_14 =
142 static auto SHIFT_8_TO_14 =
FF(64);
144 static auto SHIFT_4_TO_14 =
147 auto p_x_low_limbs = View(in.p_x_low_limbs);
148 auto p_x_low_limbs_range_constraint_0 = View(in.p_x_low_limbs_range_constraint_0);
149 auto p_x_low_limbs_range_constraint_1 = View(in.p_x_low_limbs_range_constraint_1);
150 auto p_x_low_limbs_range_constraint_2 = View(in.p_x_low_limbs_range_constraint_2);
151 auto p_x_low_limbs_range_constraint_3 = View(in.p_x_low_limbs_range_constraint_3);
152 auto p_x_low_limbs_range_constraint_4 = View(in.p_x_low_limbs_range_constraint_4);
153 auto p_x_low_limbs_shift = View(in.p_x_low_limbs_shift);
154 auto p_x_low_limbs_range_constraint_0_shift = View(in.p_x_low_limbs_range_constraint_0_shift);
155 auto p_x_low_limbs_range_constraint_1_shift = View(in.p_x_low_limbs_range_constraint_1_shift);
156 auto p_x_low_limbs_range_constraint_2_shift = View(in.p_x_low_limbs_range_constraint_2_shift);
157 auto p_x_low_limbs_range_constraint_3_shift = View(in.p_x_low_limbs_range_constraint_3_shift);
158 auto p_x_low_limbs_range_constraint_4_shift = View(in.p_x_low_limbs_range_constraint_4_shift);
159 auto p_x_high_limbs = View(in.p_x_high_limbs);
160 auto p_x_high_limbs_range_constraint_0 = View(in.p_x_high_limbs_range_constraint_0);
161 auto p_x_high_limbs_range_constraint_1 = View(in.p_x_high_limbs_range_constraint_1);
162 auto p_x_high_limbs_range_constraint_2 = View(in.p_x_high_limbs_range_constraint_2);
163 auto p_x_high_limbs_range_constraint_3 = View(in.p_x_high_limbs_range_constraint_3);
164 auto p_x_high_limbs_range_constraint_4 = View(in.p_x_high_limbs_range_constraint_4);
165 auto p_x_high_limbs_shift = View(in.p_x_high_limbs_shift);
166 auto p_x_high_limbs_range_constraint_0_shift = View(in.p_x_high_limbs_range_constraint_0_shift);
167 auto p_x_high_limbs_range_constraint_1_shift = View(in.p_x_high_limbs_range_constraint_1_shift);
168 auto p_x_high_limbs_range_constraint_2_shift = View(in.p_x_high_limbs_range_constraint_2_shift);
169 auto p_x_high_limbs_range_constraint_3_shift = View(in.p_x_high_limbs_range_constraint_3_shift);
170 auto p_y_low_limbs = View(in.p_y_low_limbs);
171 auto p_y_low_limbs_range_constraint_0 = View(in.p_y_low_limbs_range_constraint_0);
172 auto p_y_low_limbs_range_constraint_1 = View(in.p_y_low_limbs_range_constraint_1);
173 auto p_y_low_limbs_range_constraint_2 = View(in.p_y_low_limbs_range_constraint_2);
174 auto p_y_low_limbs_range_constraint_3 = View(in.p_y_low_limbs_range_constraint_3);
175 auto p_y_low_limbs_range_constraint_4 = View(in.p_y_low_limbs_range_constraint_4);
176 auto p_y_low_limbs_shift = View(in.p_y_low_limbs_shift);
177 auto p_y_low_limbs_range_constraint_0_shift = View(in.p_y_low_limbs_range_constraint_0_shift);
178 auto p_y_low_limbs_range_constraint_1_shift = View(in.p_y_low_limbs_range_constraint_1_shift);
179 auto p_y_low_limbs_range_constraint_2_shift = View(in.p_y_low_limbs_range_constraint_2_shift);
180 auto p_y_low_limbs_range_constraint_3_shift = View(in.p_y_low_limbs_range_constraint_3_shift);
181 auto p_y_low_limbs_range_constraint_4_shift = View(in.p_y_low_limbs_range_constraint_4_shift);
182 auto p_y_high_limbs = View(in.p_y_high_limbs);
183 auto p_y_high_limbs_range_constraint_0 = View(in.p_y_high_limbs_range_constraint_0);
184 auto p_y_high_limbs_range_constraint_1 = View(in.p_y_high_limbs_range_constraint_1);
185 auto p_y_high_limbs_range_constraint_2 = View(in.p_y_high_limbs_range_constraint_2);
186 auto p_y_high_limbs_range_constraint_3 = View(in.p_y_high_limbs_range_constraint_3);
187 auto p_y_high_limbs_range_constraint_4 = View(in.p_y_high_limbs_range_constraint_4);
188 auto p_y_high_limbs_shift = View(in.p_y_high_limbs_shift);
189 auto p_y_high_limbs_range_constraint_0_shift = View(in.p_y_high_limbs_range_constraint_0_shift);
190 auto p_y_high_limbs_range_constraint_1_shift = View(in.p_y_high_limbs_range_constraint_1_shift);
191 auto p_y_high_limbs_range_constraint_2_shift = View(in.p_y_high_limbs_range_constraint_2_shift);
192 auto p_y_high_limbs_range_constraint_3_shift = View(in.p_y_high_limbs_range_constraint_3_shift);
193 auto z_low_limbs = View(in.z_low_limbs);
194 auto z_low_limbs_range_constraint_0 = View(in.z_low_limbs_range_constraint_0);
195 auto z_low_limbs_range_constraint_1 = View(in.z_low_limbs_range_constraint_1);
196 auto z_low_limbs_range_constraint_2 = View(in.z_low_limbs_range_constraint_2);
197 auto z_low_limbs_range_constraint_3 = View(in.z_low_limbs_range_constraint_3);
198 auto z_low_limbs_range_constraint_4 = View(in.z_low_limbs_range_constraint_4);
199 auto z_low_limbs_shift = View(in.z_low_limbs_shift);
200 auto z_low_limbs_range_constraint_0_shift = View(in.z_low_limbs_range_constraint_0_shift);
201 auto z_low_limbs_range_constraint_1_shift = View(in.z_low_limbs_range_constraint_1_shift);
202 auto z_low_limbs_range_constraint_2_shift = View(in.z_low_limbs_range_constraint_2_shift);
203 auto z_low_limbs_range_constraint_3_shift = View(in.z_low_limbs_range_constraint_3_shift);
204 auto z_low_limbs_range_constraint_4_shift = View(in.z_low_limbs_range_constraint_4_shift);
205 auto z_high_limbs = View(in.z_high_limbs);
206 auto z_high_limbs_range_constraint_0 = View(in.z_high_limbs_range_constraint_0);
207 auto z_high_limbs_range_constraint_1 = View(in.z_high_limbs_range_constraint_1);
208 auto z_high_limbs_range_constraint_2 = View(in.z_high_limbs_range_constraint_2);
209 auto z_high_limbs_range_constraint_3 = View(in.z_high_limbs_range_constraint_3);
210 auto z_high_limbs_range_constraint_4 = View(in.z_high_limbs_range_constraint_4);
211 auto z_high_limbs_shift = View(in.z_high_limbs_shift);
212 auto z_high_limbs_range_constraint_0_shift = View(in.z_high_limbs_range_constraint_0_shift);
213 auto z_high_limbs_range_constraint_1_shift = View(in.z_high_limbs_range_constraint_1_shift);
214 auto z_high_limbs_range_constraint_2_shift = View(in.z_high_limbs_range_constraint_2_shift);
215 auto z_high_limbs_range_constraint_3_shift = View(in.z_high_limbs_range_constraint_3_shift);
216 auto z_high_limbs_range_constraint_4_shift = View(in.z_high_limbs_range_constraint_4_shift);
217 auto quotient_low_binary_limbs = View(in.quotient_low_binary_limbs);
218 auto quotient_low_limbs_range_constraint_0 = View(in.quotient_low_limbs_range_constraint_0);
219 auto quotient_low_limbs_range_constraint_1 = View(in.quotient_low_limbs_range_constraint_1);
220 auto quotient_low_limbs_range_constraint_2 = View(in.quotient_low_limbs_range_constraint_2);
221 auto quotient_low_limbs_range_constraint_3 = View(in.quotient_low_limbs_range_constraint_3);
222 auto quotient_low_limbs_range_constraint_4 = View(in.quotient_low_limbs_range_constraint_4);
223 auto quotient_low_binary_limbs_shift = View(in.quotient_low_binary_limbs_shift);
224 auto quotient_low_limbs_range_constraint_0_shift = View(in.quotient_low_limbs_range_constraint_0_shift);
225 auto quotient_low_limbs_range_constraint_1_shift = View(in.quotient_low_limbs_range_constraint_1_shift);
226 auto quotient_low_limbs_range_constraint_2_shift = View(in.quotient_low_limbs_range_constraint_2_shift);
227 auto quotient_low_limbs_range_constraint_3_shift = View(in.quotient_low_limbs_range_constraint_3_shift);
228 auto quotient_low_limbs_range_constraint_4_shift = View(in.quotient_low_limbs_range_constraint_4_shift);
229 auto quotient_high_binary_limbs = View(in.quotient_high_binary_limbs);
230 auto quotient_high_limbs_range_constraint_0 = View(in.quotient_high_limbs_range_constraint_0);
231 auto quotient_high_limbs_range_constraint_1 = View(in.quotient_high_limbs_range_constraint_1);
232 auto quotient_high_limbs_range_constraint_2 = View(in.quotient_high_limbs_range_constraint_2);
233 auto quotient_high_limbs_range_constraint_3 = View(in.quotient_high_limbs_range_constraint_3);
234 auto quotient_high_limbs_range_constraint_4 = View(in.quotient_high_limbs_range_constraint_4);
235 auto quotient_high_binary_limbs_shift = View(in.quotient_high_binary_limbs_shift);
236 auto quotient_high_limbs_range_constraint_0_shift = View(in.quotient_high_limbs_range_constraint_0_shift);
237 auto quotient_high_limbs_range_constraint_1_shift = View(in.quotient_high_limbs_range_constraint_1_shift);
238 auto quotient_high_limbs_range_constraint_2_shift = View(in.quotient_high_limbs_range_constraint_2_shift);
239 auto quotient_high_limbs_range_constraint_3_shift = View(in.quotient_high_limbs_range_constraint_3_shift);
240 auto relation_wide_limbs = View(in.relation_wide_limbs);
241 auto relation_wide_limbs_range_constraint_0 = View(in.relation_wide_limbs_range_constraint_0);
242 auto relation_wide_limbs_range_constraint_1 = View(in.relation_wide_limbs_range_constraint_1);
243 auto relation_wide_limbs_range_constraint_2 = View(in.relation_wide_limbs_range_constraint_2);
244 auto relation_wide_limbs_range_constraint_3 = View(in.relation_wide_limbs_range_constraint_3);
245 auto p_x_high_limbs_range_constraint_tail_shift = View(in.p_x_high_limbs_range_constraint_tail_shift);
246 auto accumulator_high_limbs_range_constraint_tail_shift =
247 View(in.accumulator_high_limbs_range_constraint_tail_shift);
248 auto relation_wide_limbs_shift = View(in.relation_wide_limbs_shift);
249 auto relation_wide_limbs_range_constraint_0_shift = View(in.relation_wide_limbs_range_constraint_0_shift);
250 auto relation_wide_limbs_range_constraint_1_shift = View(in.relation_wide_limbs_range_constraint_1_shift);
251 auto relation_wide_limbs_range_constraint_2_shift = View(in.relation_wide_limbs_range_constraint_2_shift);
252 auto relation_wide_limbs_range_constraint_3_shift = View(in.relation_wide_limbs_range_constraint_3_shift);
253 auto p_y_high_limbs_range_constraint_tail_shift = View(in.p_y_high_limbs_range_constraint_tail_shift);
254 auto quotient_high_limbs_range_constraint_tail_shift = View(in.quotient_high_limbs_range_constraint_tail_shift);
255 auto p_x_low_limbs_range_constraint_tail = View(in.p_x_low_limbs_range_constraint_tail);
256 auto p_x_low_limbs_range_constraint_tail_shift = View(in.p_x_low_limbs_range_constraint_tail_shift);
257 auto p_x_high_limbs_range_constraint_tail = View(in.p_x_high_limbs_range_constraint_tail);
258 auto p_x_high_limbs_range_constraint_4_shift = View(in.p_x_high_limbs_range_constraint_4_shift);
259 auto p_y_low_limbs_range_constraint_tail = View(in.p_y_low_limbs_range_constraint_tail);
260 auto p_y_low_limbs_range_constraint_tail_shift = View(in.p_y_low_limbs_range_constraint_tail_shift);
261 auto p_y_high_limbs_range_constraint_tail = View(in.p_y_high_limbs_range_constraint_tail);
262 auto p_y_high_limbs_range_constraint_4_shift = View(in.p_y_high_limbs_range_constraint_4_shift);
263 auto z_low_limbs_range_constraint_tail = View(in.z_low_limbs_range_constraint_tail);
264 auto z_low_limbs_range_constraint_tail_shift = View(in.z_low_limbs_range_constraint_tail_shift);
265 auto z_high_limbs_range_constraint_tail = View(in.z_high_limbs_range_constraint_tail);
266 auto z_high_limbs_range_constraint_tail_shift = View(in.z_high_limbs_range_constraint_tail_shift);
267 auto accumulator_low_limbs_range_constraint_tail = View(in.accumulator_low_limbs_range_constraint_tail);
268 auto accumulator_low_limbs_range_constraint_tail_shift =
269 View(in.accumulator_low_limbs_range_constraint_tail_shift);
270 auto accumulator_high_limbs_range_constraint_tail = View(in.accumulator_high_limbs_range_constraint_tail);
271 auto accumulator_high_limbs_range_constraint_3_shift = View(in.accumulator_high_limbs_range_constraint_3_shift);
272 auto accumulator_high_limbs_range_constraint_4_shift = View(in.accumulator_high_limbs_range_constraint_4_shift);
273 auto quotient_low_limbs_range_constraint_tail = View(in.quotient_low_limbs_range_constraint_tail);
274 auto quotient_low_limbs_range_constraint_tail_shift = View(in.quotient_low_limbs_range_constraint_tail_shift);
275 auto quotient_high_limbs_range_constraint_tail = View(in.quotient_high_limbs_range_constraint_tail);
276 auto quotient_high_limbs_range_constraint_4_shift = View(in.quotient_high_limbs_range_constraint_4_shift);
277 auto x_lo_y_hi = View(in.x_lo_y_hi);
278 auto x_hi_z_1 = View(in.x_hi_z_1);
279 auto y_lo_z_2 = View(in.y_lo_z_2);
280 auto x_lo_y_hi_shift = View(in.x_lo_y_hi_shift);
281 auto x_hi_z_1_shift = View(in.x_hi_z_1_shift);
282 auto y_lo_z_2_shift = View(in.y_lo_z_2_shift);
283 auto lagrange_even_in_minicircuit = View(in.lagrange_even_in_minicircuit);
286 auto tmp_5 = ((p_y_low_limbs_range_constraint_0 + p_y_low_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
287 p_y_low_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
288 p_y_low_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
289 p_y_low_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
291 tmp_5 *= lagrange_even_in_minicircuit;
292 tmp_5 *= scaling_factor;
297 ((p_y_low_limbs_range_constraint_0_shift + p_y_low_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
298 p_y_low_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
299 p_y_low_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
300 p_y_low_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
301 p_y_low_limbs_shift);
302 tmp_6 *= lagrange_even_in_minicircuit;
303 tmp_6 *= scaling_factor;
307 auto tmp_7 = ((p_y_high_limbs_range_constraint_0 + p_y_high_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
308 p_y_high_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
309 p_y_high_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
310 p_y_high_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
312 tmp_7 *= lagrange_even_in_minicircuit;
313 tmp_7 *= scaling_factor;
318 ((p_y_high_limbs_range_constraint_0_shift + p_y_high_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
319 p_y_high_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
320 p_y_high_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3) -
321 p_y_high_limbs_shift);
322 tmp_8 *= lagrange_even_in_minicircuit;
323 tmp_8 *= scaling_factor;
327 auto tmp_9 = ((z_low_limbs_range_constraint_0 + z_low_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
328 z_low_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
329 z_low_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
330 z_low_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
332 tmp_9 *= lagrange_even_in_minicircuit;
333 tmp_9 *= scaling_factor;
337 auto tmp_10 = ((z_low_limbs_range_constraint_0_shift + z_low_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
338 z_low_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
339 z_low_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
340 z_low_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
342 tmp_10 *= lagrange_even_in_minicircuit;
343 tmp_10 *= scaling_factor;
347 auto tmp_11 = ((z_high_limbs_range_constraint_0 + z_high_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
348 z_high_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
349 z_high_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
350 z_high_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
352 tmp_11 *= lagrange_even_in_minicircuit;
353 tmp_11 *= scaling_factor;
358 ((z_high_limbs_range_constraint_0_shift + z_high_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
359 z_high_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
360 z_high_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
361 z_high_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
363 tmp_12 *= lagrange_even_in_minicircuit;
364 tmp_12 *= scaling_factor;
369 auto tmp_13 = ((p_x_low_limbs_range_constraint_0 + p_x_low_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
370 p_x_low_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
371 p_x_low_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
372 p_x_low_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
374 tmp_13 *= lagrange_even_in_minicircuit;
375 tmp_13 *= scaling_factor;
380 ((p_x_low_limbs_range_constraint_0_shift + p_x_low_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
381 p_x_low_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
382 p_x_low_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
383 p_x_low_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
384 p_x_low_limbs_shift);
385 tmp_14 *= lagrange_even_in_minicircuit;
386 tmp_14 *= scaling_factor;
390 auto tmp_15 = ((p_x_high_limbs_range_constraint_0 + p_x_high_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
391 p_x_high_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
392 p_x_high_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
393 p_x_high_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
395 tmp_15 *= lagrange_even_in_minicircuit;
396 tmp_15 *= scaling_factor;
401 ((p_x_high_limbs_range_constraint_0_shift + p_x_high_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
402 p_x_high_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
403 p_x_high_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3) -
404 p_x_high_limbs_shift);
405 tmp_16 *= lagrange_even_in_minicircuit;
406 tmp_16 *= scaling_factor;
411 ((quotient_low_limbs_range_constraint_0 + quotient_low_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
412 quotient_low_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
413 quotient_low_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
414 quotient_low_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
415 quotient_low_binary_limbs);
416 tmp_17 *= lagrange_even_in_minicircuit;
417 tmp_17 *= scaling_factor;
420 auto tmp_18 = ((quotient_low_limbs_range_constraint_0_shift +
421 quotient_low_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
422 quotient_low_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
423 quotient_low_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
424 quotient_low_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
425 quotient_low_binary_limbs_shift);
426 tmp_18 *= lagrange_even_in_minicircuit;
427 tmp_18 *= scaling_factor;
432 ((quotient_high_limbs_range_constraint_0 + quotient_high_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
433 quotient_high_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
434 quotient_high_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
435 quotient_high_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
436 quotient_high_binary_limbs);
437 tmp_19 *= lagrange_even_in_minicircuit;
438 tmp_19 *= scaling_factor;
441 auto tmp_20 = ((quotient_high_limbs_range_constraint_0_shift +
442 quotient_high_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
443 quotient_high_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
444 quotient_high_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3) -
445 quotient_high_binary_limbs_shift);
446 tmp_20 *= lagrange_even_in_minicircuit;
447 tmp_20 *= scaling_factor;
455 ((relation_wide_limbs_range_constraint_0 + relation_wide_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
456 relation_wide_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
457 relation_wide_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
458 p_x_high_limbs_range_constraint_tail_shift * MICRO_LIMB_SHIFTx4 +
459 accumulator_high_limbs_range_constraint_tail_shift * MICRO_LIMB_SHIFTx5) -
460 relation_wide_limbs);
461 tmp_21 *= lagrange_even_in_minicircuit;
462 tmp_21 *= scaling_factor;
466 auto tmp_22 = ((relation_wide_limbs_range_constraint_0_shift +
467 relation_wide_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
468 relation_wide_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
469 relation_wide_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
470 p_y_high_limbs_range_constraint_tail_shift * MICRO_LIMB_SHIFTx4 +
471 quotient_high_limbs_range_constraint_tail_shift * MICRO_LIMB_SHIFTx5) -
472 relation_wide_limbs_shift);
473 tmp_22 *= lagrange_even_in_minicircuit;
474 tmp_22 *= scaling_factor;
481 auto tmp_23 = p_x_low_limbs_range_constraint_4 * SHIFT_12_TO_14 - p_x_low_limbs_range_constraint_tail;
482 tmp_23 *= lagrange_even_in_minicircuit;
483 tmp_23 *= scaling_factor;
488 p_x_low_limbs_range_constraint_4_shift * SHIFT_12_TO_14 - p_x_low_limbs_range_constraint_tail_shift;
489 tmp_24 *= lagrange_even_in_minicircuit;
490 tmp_24 *= scaling_factor;
494 auto tmp_25 = p_x_high_limbs_range_constraint_4 * SHIFT_12_TO_14 - p_x_high_limbs_range_constraint_tail;
495 tmp_25 *= lagrange_even_in_minicircuit;
496 tmp_25 *= scaling_factor;
501 (p_x_high_limbs_range_constraint_3_shift * SHIFT_8_TO_14 - p_x_high_limbs_range_constraint_4_shift);
503 tmp_26 *= lagrange_even_in_minicircuit;
504 tmp_26 *= scaling_factor;
508 auto tmp_27 = p_y_low_limbs_range_constraint_4 * SHIFT_12_TO_14 - p_y_low_limbs_range_constraint_tail;
509 tmp_27 *= lagrange_even_in_minicircuit;
510 tmp_27 *= scaling_factor;
515 p_y_low_limbs_range_constraint_4_shift * SHIFT_12_TO_14 - p_y_low_limbs_range_constraint_tail_shift;
516 tmp_28 *= lagrange_even_in_minicircuit;
517 tmp_28 *= scaling_factor;
522 auto tmp_29 = p_y_high_limbs_range_constraint_4 * SHIFT_12_TO_14 - p_y_high_limbs_range_constraint_tail;
523 tmp_29 *= lagrange_even_in_minicircuit;
524 tmp_29 *= scaling_factor;
529 (p_y_high_limbs_range_constraint_3_shift * SHIFT_8_TO_14 - p_y_high_limbs_range_constraint_4_shift);
531 tmp_30 *= lagrange_even_in_minicircuit;
532 tmp_30 *= scaling_factor;
536 auto tmp_31 = (z_low_limbs_range_constraint_4 * SHIFT_12_TO_14 - z_low_limbs_range_constraint_tail);
537 tmp_31 *= lagrange_even_in_minicircuit;
538 tmp_31 *= scaling_factor;
542 auto tmp_32 = (z_low_limbs_range_constraint_4_shift * SHIFT_12_TO_14 - z_low_limbs_range_constraint_tail_shift);
543 tmp_32 *= lagrange_even_in_minicircuit;
544 tmp_32 *= scaling_factor;
548 auto tmp_33 = (z_high_limbs_range_constraint_4 * SHIFT_4_TO_14 - z_high_limbs_range_constraint_tail);
549 tmp_33 *= lagrange_even_in_minicircuit;
550 tmp_33 *= scaling_factor;
555 (z_high_limbs_range_constraint_4_shift * SHIFT_4_TO_14 - z_high_limbs_range_constraint_tail_shift);
556 tmp_34 *= lagrange_even_in_minicircuit;
557 tmp_34 *= scaling_factor;
563 (accumulator_low_limbs_range_constraint_4 * SHIFT_12_TO_14 - accumulator_low_limbs_range_constraint_tail);
564 tmp_35 *= lagrange_even_in_minicircuit;
565 tmp_35 *= scaling_factor;
570 auto tmp_36 = (accumulator_low_limbs_range_constraint_4_shift * SHIFT_12_TO_14 -
571 accumulator_low_limbs_range_constraint_tail_shift);
572 tmp_36 *= lagrange_even_in_minicircuit;
573 tmp_36 *= scaling_factor;
579 (accumulator_high_limbs_range_constraint_4 * SHIFT_12_TO_14 - accumulator_high_limbs_range_constraint_tail);
580 tmp_37 *= lagrange_even_in_minicircuit;
581 tmp_37 *= scaling_factor;
586 auto tmp_38 = (accumulator_high_limbs_range_constraint_3_shift * SHIFT_8_TO_14 -
587 accumulator_high_limbs_range_constraint_4_shift);
588 tmp_38 *= lagrange_even_in_minicircuit;
589 tmp_38 *= scaling_factor;
594 (quotient_low_limbs_range_constraint_4 * SHIFT_12_TO_14 - quotient_low_limbs_range_constraint_tail);
595 tmp_39 *= lagrange_even_in_minicircuit;
596 tmp_39 *= scaling_factor;
601 auto tmp_40 = (quotient_low_limbs_range_constraint_4_shift * SHIFT_12_TO_14 -
602 quotient_low_limbs_range_constraint_tail_shift);
603 tmp_40 *= lagrange_even_in_minicircuit;
604 tmp_40 *= scaling_factor;
610 (quotient_high_limbs_range_constraint_4 * SHIFT_12_TO_14 - quotient_high_limbs_range_constraint_tail);
611 tmp_41 *= lagrange_even_in_minicircuit;
612 tmp_41 *= scaling_factor;
616 auto tmp_42 = (quotient_high_limbs_range_constraint_3_shift * SHIFT_10_TO_14 -
617 quotient_high_limbs_range_constraint_4_shift);
618 tmp_42 *= lagrange_even_in_minicircuit;
619 tmp_42 *= scaling_factor;
625 auto tmp_43 = (p_x_low_limbs + p_x_low_limbs_shift * LIMB_SHIFT) - x_lo_y_hi;
626 tmp_43 *= lagrange_even_in_minicircuit;
627 tmp_43 *= scaling_factor;
631 auto tmp_44 = (p_x_high_limbs + p_x_high_limbs_shift * LIMB_SHIFT) - x_hi_z_1;
632 tmp_44 *= lagrange_even_in_minicircuit;
633 tmp_44 *= scaling_factor;
636 auto tmp_45 = (p_y_low_limbs + p_y_low_limbs_shift * LIMB_SHIFT) - y_lo_z_2;
637 tmp_45 *= lagrange_even_in_minicircuit;
638 tmp_45 *= scaling_factor;
642 auto tmp_46 = (p_y_high_limbs + p_y_high_limbs_shift * LIMB_SHIFT) - x_lo_y_hi_shift;
643 tmp_46 *= lagrange_even_in_minicircuit;
644 tmp_46 *= scaling_factor;
648 auto tmp_47 = (z_low_limbs + z_high_limbs * LIMB_SHIFT) - x_hi_z_1_shift;
649 tmp_47 *= lagrange_even_in_minicircuit;
650 tmp_47 *= scaling_factor;
654 auto tmp_48 = (z_low_limbs_shift + z_high_limbs_shift * LIMB_SHIFT) - y_lo_z_2_shift;
655 tmp_48 *= lagrange_even_in_minicircuit;
656 tmp_48 *= scaling_factor;