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;
41 static auto LIMB_SHIFT =
FF(
uint256_t(1) << NUM_LIMB_BITS);
44 static auto MICRO_LIMB_SHIFT =
FF(
uint256_t(1) << NUM_MICRO_LIMB_BITS);
45 static auto MICRO_LIMB_SHIFTx2 = MICRO_LIMB_SHIFT * MICRO_LIMB_SHIFT;
46 static auto MICRO_LIMB_SHIFTx3 = MICRO_LIMB_SHIFTx2 * MICRO_LIMB_SHIFT;
47 static auto MICRO_LIMB_SHIFTx4 = MICRO_LIMB_SHIFTx3 * MICRO_LIMB_SHIFT;
48 static auto MICRO_LIMB_SHIFTx5 = MICRO_LIMB_SHIFTx4 * MICRO_LIMB_SHIFT;
51 static auto SHIFT_12_TO_14 =
53 static auto SHIFT_10_TO_14 =
55 static auto SHIFT_8_TO_14 =
FF(64);
57 static auto SHIFT_4_TO_14 =
61 using View =
typename Accumulator::View;
63 auto p_x_low_limbs = View(in.p_x_low_limbs);
64 auto p_x_low_limbs_range_constraint_0 = View(in.p_x_low_limbs_range_constraint_0);
65 auto p_x_low_limbs_range_constraint_1 = View(in.p_x_low_limbs_range_constraint_1);
66 auto p_x_low_limbs_range_constraint_2 = View(in.p_x_low_limbs_range_constraint_2);
67 auto p_x_low_limbs_range_constraint_3 = View(in.p_x_low_limbs_range_constraint_3);
68 auto p_x_low_limbs_range_constraint_4 = View(in.p_x_low_limbs_range_constraint_4);
69 auto p_x_low_limbs_shift = View(in.p_x_low_limbs_shift);
70 auto p_x_low_limbs_range_constraint_0_shift = View(in.p_x_low_limbs_range_constraint_0_shift);
71 auto p_x_low_limbs_range_constraint_1_shift = View(in.p_x_low_limbs_range_constraint_1_shift);
72 auto p_x_low_limbs_range_constraint_2_shift = View(in.p_x_low_limbs_range_constraint_2_shift);
73 auto p_x_low_limbs_range_constraint_3_shift = View(in.p_x_low_limbs_range_constraint_3_shift);
74 auto p_x_low_limbs_range_constraint_4_shift = View(in.p_x_low_limbs_range_constraint_4_shift);
75 auto p_x_high_limbs = View(in.p_x_high_limbs);
76 auto p_x_high_limbs_range_constraint_0 = View(in.p_x_high_limbs_range_constraint_0);
77 auto p_x_high_limbs_range_constraint_1 = View(in.p_x_high_limbs_range_constraint_1);
78 auto p_x_high_limbs_range_constraint_2 = View(in.p_x_high_limbs_range_constraint_2);
79 auto p_x_high_limbs_range_constraint_3 = View(in.p_x_high_limbs_range_constraint_3);
80 auto p_x_high_limbs_range_constraint_4 = View(in.p_x_high_limbs_range_constraint_4);
81 auto p_x_high_limbs_shift = View(in.p_x_high_limbs_shift);
82 auto p_x_high_limbs_range_constraint_0_shift = View(in.p_x_high_limbs_range_constraint_0_shift);
83 auto p_x_high_limbs_range_constraint_1_shift = View(in.p_x_high_limbs_range_constraint_1_shift);
84 auto p_x_high_limbs_range_constraint_2_shift = View(in.p_x_high_limbs_range_constraint_2_shift);
85 auto p_x_high_limbs_range_constraint_3_shift = View(in.p_x_high_limbs_range_constraint_3_shift);
86 auto p_y_low_limbs = View(in.p_y_low_limbs);
87 auto p_y_low_limbs_range_constraint_0 = View(in.p_y_low_limbs_range_constraint_0);
88 auto p_y_low_limbs_range_constraint_1 = View(in.p_y_low_limbs_range_constraint_1);
89 auto p_y_low_limbs_range_constraint_2 = View(in.p_y_low_limbs_range_constraint_2);
90 auto p_y_low_limbs_range_constraint_3 = View(in.p_y_low_limbs_range_constraint_3);
91 auto p_y_low_limbs_range_constraint_4 = View(in.p_y_low_limbs_range_constraint_4);
92 auto p_y_low_limbs_shift = View(in.p_y_low_limbs_shift);
93 auto p_y_low_limbs_range_constraint_0_shift = View(in.p_y_low_limbs_range_constraint_0_shift);
94 auto p_y_low_limbs_range_constraint_1_shift = View(in.p_y_low_limbs_range_constraint_1_shift);
95 auto p_y_low_limbs_range_constraint_2_shift = View(in.p_y_low_limbs_range_constraint_2_shift);
96 auto p_y_low_limbs_range_constraint_3_shift = View(in.p_y_low_limbs_range_constraint_3_shift);
97 auto p_y_low_limbs_range_constraint_4_shift = View(in.p_y_low_limbs_range_constraint_4_shift);
98 auto p_y_high_limbs = View(in.p_y_high_limbs);
99 auto p_y_high_limbs_range_constraint_0 = View(in.p_y_high_limbs_range_constraint_0);
100 auto p_y_high_limbs_range_constraint_1 = View(in.p_y_high_limbs_range_constraint_1);
101 auto p_y_high_limbs_range_constraint_2 = View(in.p_y_high_limbs_range_constraint_2);
102 auto p_y_high_limbs_range_constraint_3 = View(in.p_y_high_limbs_range_constraint_3);
103 auto p_y_high_limbs_range_constraint_4 = View(in.p_y_high_limbs_range_constraint_4);
104 auto p_y_high_limbs_shift = View(in.p_y_high_limbs_shift);
105 auto p_y_high_limbs_range_constraint_0_shift = View(in.p_y_high_limbs_range_constraint_0_shift);
106 auto p_y_high_limbs_range_constraint_1_shift = View(in.p_y_high_limbs_range_constraint_1_shift);
107 auto p_y_high_limbs_range_constraint_2_shift = View(in.p_y_high_limbs_range_constraint_2_shift);
108 auto p_y_high_limbs_range_constraint_3_shift = View(in.p_y_high_limbs_range_constraint_3_shift);
109 auto z_low_limbs = View(in.z_low_limbs);
110 auto z_low_limbs_range_constraint_0 = View(in.z_low_limbs_range_constraint_0);
111 auto z_low_limbs_range_constraint_1 = View(in.z_low_limbs_range_constraint_1);
112 auto z_low_limbs_range_constraint_2 = View(in.z_low_limbs_range_constraint_2);
113 auto z_low_limbs_range_constraint_3 = View(in.z_low_limbs_range_constraint_3);
114 auto z_low_limbs_range_constraint_4 = View(in.z_low_limbs_range_constraint_4);
115 auto z_low_limbs_shift = View(in.z_low_limbs_shift);
116 auto z_low_limbs_range_constraint_0_shift = View(in.z_low_limbs_range_constraint_0_shift);
117 auto z_low_limbs_range_constraint_1_shift = View(in.z_low_limbs_range_constraint_1_shift);
118 auto z_low_limbs_range_constraint_2_shift = View(in.z_low_limbs_range_constraint_2_shift);
119 auto z_low_limbs_range_constraint_3_shift = View(in.z_low_limbs_range_constraint_3_shift);
120 auto z_low_limbs_range_constraint_4_shift = View(in.z_low_limbs_range_constraint_4_shift);
121 auto z_high_limbs = View(in.z_high_limbs);
122 auto z_high_limbs_range_constraint_0 = View(in.z_high_limbs_range_constraint_0);
123 auto z_high_limbs_range_constraint_1 = View(in.z_high_limbs_range_constraint_1);
124 auto z_high_limbs_range_constraint_2 = View(in.z_high_limbs_range_constraint_2);
125 auto z_high_limbs_range_constraint_3 = View(in.z_high_limbs_range_constraint_3);
126 auto z_high_limbs_range_constraint_4 = View(in.z_high_limbs_range_constraint_4);
127 auto z_high_limbs_shift = View(in.z_high_limbs_shift);
128 auto z_high_limbs_range_constraint_0_shift = View(in.z_high_limbs_range_constraint_0_shift);
129 auto z_high_limbs_range_constraint_1_shift = View(in.z_high_limbs_range_constraint_1_shift);
130 auto z_high_limbs_range_constraint_2_shift = View(in.z_high_limbs_range_constraint_2_shift);
131 auto z_high_limbs_range_constraint_3_shift = View(in.z_high_limbs_range_constraint_3_shift);
132 auto z_high_limbs_range_constraint_4_shift = View(in.z_high_limbs_range_constraint_4_shift);
133 auto accumulators_binary_limbs_0 = View(in.accumulators_binary_limbs_0);
134 auto accumulators_binary_limbs_1 = View(in.accumulators_binary_limbs_1);
135 auto accumulators_binary_limbs_2 = View(in.accumulators_binary_limbs_2);
136 auto accumulators_binary_limbs_3 = View(in.accumulators_binary_limbs_3);
137 auto accumulator_low_limbs_range_constraint_0 = View(in.accumulator_low_limbs_range_constraint_0);
138 auto accumulator_low_limbs_range_constraint_1 = View(in.accumulator_low_limbs_range_constraint_1);
139 auto accumulator_low_limbs_range_constraint_2 = View(in.accumulator_low_limbs_range_constraint_2);
140 auto accumulator_low_limbs_range_constraint_3 = View(in.accumulator_low_limbs_range_constraint_3);
141 auto accumulator_low_limbs_range_constraint_4 = View(in.accumulator_low_limbs_range_constraint_4);
142 auto accumulator_low_limbs_range_constraint_0_shift = View(in.accumulator_low_limbs_range_constraint_0_shift);
143 auto accumulator_low_limbs_range_constraint_1_shift = View(in.accumulator_low_limbs_range_constraint_1_shift);
144 auto accumulator_low_limbs_range_constraint_2_shift = View(in.accumulator_low_limbs_range_constraint_2_shift);
145 auto accumulator_low_limbs_range_constraint_3_shift = View(in.accumulator_low_limbs_range_constraint_3_shift);
146 auto accumulator_low_limbs_range_constraint_4_shift = View(in.accumulator_low_limbs_range_constraint_4_shift);
147 auto accumulator_high_limbs_range_constraint_0 = View(in.accumulator_high_limbs_range_constraint_0);
148 auto accumulator_high_limbs_range_constraint_1 = View(in.accumulator_high_limbs_range_constraint_1);
149 auto accumulator_high_limbs_range_constraint_2 = View(in.accumulator_high_limbs_range_constraint_2);
150 auto accumulator_high_limbs_range_constraint_3 = View(in.accumulator_high_limbs_range_constraint_3);
151 auto accumulator_high_limbs_range_constraint_4 = View(in.accumulator_high_limbs_range_constraint_4);
152 auto accumulator_high_limbs_range_constraint_0_shift = View(in.accumulator_high_limbs_range_constraint_0_shift);
153 auto accumulator_high_limbs_range_constraint_1_shift = View(in.accumulator_high_limbs_range_constraint_1_shift);
154 auto accumulator_high_limbs_range_constraint_2_shift = View(in.accumulator_high_limbs_range_constraint_2_shift);
155 auto accumulator_high_limbs_range_constraint_3_shift = View(in.accumulator_high_limbs_range_constraint_3_shift);
156 auto quotient_low_binary_limbs = View(in.quotient_low_binary_limbs);
157 auto quotient_low_limbs_range_constraint_0 = View(in.quotient_low_limbs_range_constraint_0);
158 auto quotient_low_limbs_range_constraint_1 = View(in.quotient_low_limbs_range_constraint_1);
159 auto quotient_low_limbs_range_constraint_2 = View(in.quotient_low_limbs_range_constraint_2);
160 auto quotient_low_limbs_range_constraint_3 = View(in.quotient_low_limbs_range_constraint_3);
161 auto quotient_low_limbs_range_constraint_4 = View(in.quotient_low_limbs_range_constraint_4);
162 auto quotient_low_binary_limbs_shift = View(in.quotient_low_binary_limbs_shift);
163 auto quotient_low_limbs_range_constraint_0_shift = View(in.quotient_low_limbs_range_constraint_0_shift);
164 auto quotient_low_limbs_range_constraint_1_shift = View(in.quotient_low_limbs_range_constraint_1_shift);
165 auto quotient_low_limbs_range_constraint_2_shift = View(in.quotient_low_limbs_range_constraint_2_shift);
166 auto quotient_low_limbs_range_constraint_3_shift = View(in.quotient_low_limbs_range_constraint_3_shift);
167 auto quotient_low_limbs_range_constraint_4_shift = View(in.quotient_low_limbs_range_constraint_4_shift);
168 auto quotient_high_binary_limbs = View(in.quotient_high_binary_limbs);
169 auto quotient_high_limbs_range_constraint_0 = View(in.quotient_high_limbs_range_constraint_0);
170 auto quotient_high_limbs_range_constraint_1 = View(in.quotient_high_limbs_range_constraint_1);
171 auto quotient_high_limbs_range_constraint_2 = View(in.quotient_high_limbs_range_constraint_2);
172 auto quotient_high_limbs_range_constraint_3 = View(in.quotient_high_limbs_range_constraint_3);
173 auto quotient_high_limbs_range_constraint_4 = View(in.quotient_high_limbs_range_constraint_4);
174 auto quotient_high_binary_limbs_shift = View(in.quotient_high_binary_limbs_shift);
175 auto quotient_high_limbs_range_constraint_0_shift = View(in.quotient_high_limbs_range_constraint_0_shift);
176 auto quotient_high_limbs_range_constraint_1_shift = View(in.quotient_high_limbs_range_constraint_1_shift);
177 auto quotient_high_limbs_range_constraint_2_shift = View(in.quotient_high_limbs_range_constraint_2_shift);
178 auto quotient_high_limbs_range_constraint_3_shift = View(in.quotient_high_limbs_range_constraint_3_shift);
179 auto relation_wide_limbs = View(in.relation_wide_limbs);
180 auto relation_wide_limbs_range_constraint_0 = View(in.relation_wide_limbs_range_constraint_0);
181 auto relation_wide_limbs_range_constraint_1 = View(in.relation_wide_limbs_range_constraint_1);
182 auto relation_wide_limbs_range_constraint_2 = View(in.relation_wide_limbs_range_constraint_2);
183 auto relation_wide_limbs_range_constraint_3 = View(in.relation_wide_limbs_range_constraint_3);
184 auto p_x_high_limbs_range_constraint_tail_shift = View(in.p_x_high_limbs_range_constraint_tail_shift);
185 auto accumulator_high_limbs_range_constraint_tail_shift =
186 View(in.accumulator_high_limbs_range_constraint_tail_shift);
187 auto relation_wide_limbs_shift = View(in.relation_wide_limbs_shift);
188 auto relation_wide_limbs_range_constraint_0_shift = View(in.relation_wide_limbs_range_constraint_0_shift);
189 auto relation_wide_limbs_range_constraint_1_shift = View(in.relation_wide_limbs_range_constraint_1_shift);
190 auto relation_wide_limbs_range_constraint_2_shift = View(in.relation_wide_limbs_range_constraint_2_shift);
191 auto relation_wide_limbs_range_constraint_3_shift = View(in.relation_wide_limbs_range_constraint_3_shift);
192 auto p_y_high_limbs_range_constraint_tail_shift = View(in.p_y_high_limbs_range_constraint_tail_shift);
193 auto quotient_high_limbs_range_constraint_tail_shift = View(in.quotient_high_limbs_range_constraint_tail_shift);
194 auto p_x_low_limbs_range_constraint_tail = View(in.p_x_low_limbs_range_constraint_tail);
195 auto p_x_low_limbs_range_constraint_tail_shift = View(in.p_x_low_limbs_range_constraint_tail_shift);
196 auto p_x_high_limbs_range_constraint_tail = View(in.p_x_high_limbs_range_constraint_tail);
197 auto p_x_high_limbs_range_constraint_4_shift = View(in.p_x_high_limbs_range_constraint_4_shift);
198 auto p_y_low_limbs_range_constraint_tail = View(in.p_y_low_limbs_range_constraint_tail);
199 auto p_y_low_limbs_range_constraint_tail_shift = View(in.p_y_low_limbs_range_constraint_tail_shift);
200 auto p_y_high_limbs_range_constraint_tail = View(in.p_y_high_limbs_range_constraint_tail);
201 auto p_y_high_limbs_range_constraint_4_shift = View(in.p_y_high_limbs_range_constraint_4_shift);
202 auto z_low_limbs_range_constraint_tail = View(in.z_low_limbs_range_constraint_tail);
203 auto z_low_limbs_range_constraint_tail_shift = View(in.z_low_limbs_range_constraint_tail_shift);
204 auto z_high_limbs_range_constraint_tail = View(in.z_high_limbs_range_constraint_tail);
205 auto z_high_limbs_range_constraint_tail_shift = View(in.z_high_limbs_range_constraint_tail_shift);
206 auto accumulator_low_limbs_range_constraint_tail = View(in.accumulator_low_limbs_range_constraint_tail);
207 auto accumulator_low_limbs_range_constraint_tail_shift = View(in.accumulator_low_limbs_range_constraint_tail_shift);
208 auto accumulator_high_limbs_range_constraint_tail = View(in.accumulator_high_limbs_range_constraint_tail);
209 auto accumulator_high_limbs_range_constraint_4_shift = View(in.accumulator_high_limbs_range_constraint_4_shift);
210 auto quotient_low_limbs_range_constraint_tail = View(in.quotient_low_limbs_range_constraint_tail);
211 auto quotient_low_limbs_range_constraint_tail_shift = View(in.quotient_low_limbs_range_constraint_tail_shift);
212 auto quotient_high_limbs_range_constraint_tail = View(in.quotient_high_limbs_range_constraint_tail);
213 auto quotient_high_limbs_range_constraint_4_shift = View(in.quotient_high_limbs_range_constraint_4_shift);
214 auto x_lo_y_hi = View(in.x_lo_y_hi);
215 auto x_hi_z_1 = View(in.x_hi_z_1);
216 auto y_lo_z_2 = View(in.y_lo_z_2);
217 auto x_lo_y_hi_shift = View(in.x_lo_y_hi_shift);
218 auto x_hi_z_1_shift = View(in.x_hi_z_1_shift);
219 auto y_lo_z_2_shift = View(in.y_lo_z_2_shift);
220 auto lagrange_even_in_minicircuit = View(in.lagrange_even_in_minicircuit);
224 auto tmp_1 = ((p_x_low_limbs_range_constraint_0 + p_x_low_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
225 p_x_low_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
226 p_x_low_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
227 p_x_low_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
229 tmp_1 *= lagrange_even_in_minicircuit;
230 tmp_1 *= scaling_factor;
234 auto tmp_2 = ((p_x_low_limbs_range_constraint_0_shift + p_x_low_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
235 p_x_low_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
236 p_x_low_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
237 p_x_low_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
238 p_x_low_limbs_shift);
239 tmp_2 *= lagrange_even_in_minicircuit;
240 tmp_2 *= scaling_factor;
244 auto tmp_3 = ((p_x_high_limbs_range_constraint_0 + p_x_high_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
245 p_x_high_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
246 p_x_high_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
247 p_x_high_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
249 tmp_3 *= lagrange_even_in_minicircuit;
250 tmp_3 *= scaling_factor;
255 ((p_x_high_limbs_range_constraint_0_shift + p_x_high_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
256 p_x_high_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
257 p_x_high_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3) -
258 p_x_high_limbs_shift);
259 tmp_4 *= lagrange_even_in_minicircuit;
260 tmp_4 *= scaling_factor;
264 auto tmp_5 = ((p_y_low_limbs_range_constraint_0 + p_y_low_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
265 p_y_low_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
266 p_y_low_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
267 p_y_low_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
269 tmp_5 *= lagrange_even_in_minicircuit;
270 tmp_5 *= scaling_factor;
274 auto tmp_6 = ((p_y_low_limbs_range_constraint_0_shift + p_y_low_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
275 p_y_low_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
276 p_y_low_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
277 p_y_low_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
278 p_y_low_limbs_shift);
279 tmp_6 *= lagrange_even_in_minicircuit;
280 tmp_6 *= scaling_factor;
284 auto tmp_7 = ((p_y_high_limbs_range_constraint_0 + p_y_high_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
285 p_y_high_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
286 p_y_high_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
287 p_y_high_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
289 tmp_7 *= lagrange_even_in_minicircuit;
290 tmp_7 *= scaling_factor;
295 ((p_y_high_limbs_range_constraint_0_shift + p_y_high_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
296 p_y_high_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
297 p_y_high_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3) -
298 p_y_high_limbs_shift);
299 tmp_8 *= lagrange_even_in_minicircuit;
300 tmp_8 *= scaling_factor;
305 ((z_low_limbs_range_constraint_0 + z_low_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
306 z_low_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 + z_low_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
307 z_low_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
309 tmp_9 *= lagrange_even_in_minicircuit;
310 tmp_9 *= scaling_factor;
314 auto tmp_10 = ((z_low_limbs_range_constraint_0_shift + z_low_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
315 z_low_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
316 z_low_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
317 z_low_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
319 tmp_10 *= lagrange_even_in_minicircuit;
320 tmp_10 *= scaling_factor;
325 ((z_high_limbs_range_constraint_0 + z_high_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
326 z_high_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 + z_high_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
327 z_high_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
329 tmp_11 *= lagrange_even_in_minicircuit;
330 tmp_11 *= scaling_factor;
334 auto tmp_12 = ((z_high_limbs_range_constraint_0_shift + z_high_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
335 z_high_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
336 z_high_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
337 z_high_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
339 tmp_12 *= lagrange_even_in_minicircuit;
340 tmp_12 *= scaling_factor;
345 ((accumulator_low_limbs_range_constraint_0 + accumulator_low_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
346 accumulator_low_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
347 accumulator_low_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
348 accumulator_low_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
349 accumulators_binary_limbs_0);
350 tmp_13 *= lagrange_even_in_minicircuit;
351 tmp_13 *= scaling_factor;
354 auto tmp_14 = ((accumulator_low_limbs_range_constraint_0_shift +
355 accumulator_low_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
356 accumulator_low_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
357 accumulator_low_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
358 accumulator_low_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
359 accumulators_binary_limbs_1);
360 tmp_14 *= lagrange_even_in_minicircuit;
361 tmp_14 *= scaling_factor;
366 ((accumulator_high_limbs_range_constraint_0 + accumulator_high_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
367 accumulator_high_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
368 accumulator_high_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
369 accumulator_high_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
370 accumulators_binary_limbs_2);
371 tmp_15 *= lagrange_even_in_minicircuit;
372 tmp_15 *= scaling_factor;
375 auto tmp_16 = ((accumulator_high_limbs_range_constraint_0_shift +
376 accumulator_high_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
377 accumulator_high_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
378 accumulator_high_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3) -
379 accumulators_binary_limbs_3);
380 tmp_16 *= lagrange_even_in_minicircuit;
381 tmp_16 *= scaling_factor;
385 auto tmp_17 = ((quotient_low_limbs_range_constraint_0 + quotient_low_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
386 quotient_low_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
387 quotient_low_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
388 quotient_low_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
389 quotient_low_binary_limbs);
390 tmp_17 *= lagrange_even_in_minicircuit;
391 tmp_17 *= scaling_factor;
395 ((quotient_low_limbs_range_constraint_0_shift + quotient_low_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
396 quotient_low_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
397 quotient_low_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
398 quotient_low_limbs_range_constraint_4_shift * MICRO_LIMB_SHIFTx4) -
399 quotient_low_binary_limbs_shift);
400 tmp_18 *= lagrange_even_in_minicircuit;
401 tmp_18 *= scaling_factor;
405 auto tmp_19 = ((quotient_high_limbs_range_constraint_0 + quotient_high_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
406 quotient_high_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
407 quotient_high_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
408 quotient_high_limbs_range_constraint_4 * MICRO_LIMB_SHIFTx4) -
409 quotient_high_binary_limbs);
410 tmp_19 *= lagrange_even_in_minicircuit;
411 tmp_19 *= scaling_factor;
414 auto tmp_20 = ((quotient_high_limbs_range_constraint_0_shift +
415 quotient_high_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
416 quotient_high_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
417 quotient_high_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3) -
418 quotient_high_binary_limbs_shift);
419 tmp_20 *= lagrange_even_in_minicircuit;
420 tmp_20 *= scaling_factor;
427 auto tmp_21 = ((relation_wide_limbs_range_constraint_0 + relation_wide_limbs_range_constraint_1 * MICRO_LIMB_SHIFT +
428 relation_wide_limbs_range_constraint_2 * MICRO_LIMB_SHIFTx2 +
429 relation_wide_limbs_range_constraint_3 * MICRO_LIMB_SHIFTx3 +
430 p_x_high_limbs_range_constraint_tail_shift * MICRO_LIMB_SHIFTx4 +
431 accumulator_high_limbs_range_constraint_tail_shift * MICRO_LIMB_SHIFTx5) -
432 relation_wide_limbs);
433 tmp_21 *= lagrange_even_in_minicircuit;
434 tmp_21 *= scaling_factor;
438 auto tmp_22 = ((relation_wide_limbs_range_constraint_0_shift +
439 relation_wide_limbs_range_constraint_1_shift * MICRO_LIMB_SHIFT +
440 relation_wide_limbs_range_constraint_2_shift * MICRO_LIMB_SHIFTx2 +
441 relation_wide_limbs_range_constraint_3_shift * MICRO_LIMB_SHIFTx3 +
442 p_y_high_limbs_range_constraint_tail_shift * MICRO_LIMB_SHIFTx4 +
443 quotient_high_limbs_range_constraint_tail_shift * MICRO_LIMB_SHIFTx5) -
444 relation_wide_limbs_shift);
445 tmp_22 *= lagrange_even_in_minicircuit;
446 tmp_22 *= scaling_factor;
453 auto tmp_23 = p_x_low_limbs_range_constraint_4 * SHIFT_12_TO_14 - p_x_low_limbs_range_constraint_tail;
454 tmp_23 *= lagrange_even_in_minicircuit;
455 tmp_23 *= scaling_factor;
459 auto tmp_24 = p_x_low_limbs_range_constraint_4_shift * SHIFT_12_TO_14 - p_x_low_limbs_range_constraint_tail_shift;
460 tmp_24 *= lagrange_even_in_minicircuit;
461 tmp_24 *= scaling_factor;
465 auto tmp_25 = p_x_high_limbs_range_constraint_4 * SHIFT_12_TO_14 - p_x_high_limbs_range_constraint_tail;
466 tmp_25 *= lagrange_even_in_minicircuit;
467 tmp_25 *= scaling_factor;
471 auto tmp_26 = (p_x_high_limbs_range_constraint_3_shift * SHIFT_8_TO_14 - p_x_high_limbs_range_constraint_4_shift);
473 tmp_26 *= lagrange_even_in_minicircuit;
474 tmp_26 *= scaling_factor;
478 auto tmp_27 = p_y_low_limbs_range_constraint_4 * SHIFT_12_TO_14 - p_y_low_limbs_range_constraint_tail;
479 tmp_27 *= lagrange_even_in_minicircuit;
480 tmp_27 *= scaling_factor;
484 auto tmp_28 = p_y_low_limbs_range_constraint_4_shift * SHIFT_12_TO_14 - p_y_low_limbs_range_constraint_tail_shift;
485 tmp_28 *= lagrange_even_in_minicircuit;
486 tmp_28 *= scaling_factor;
491 auto tmp_29 = p_y_high_limbs_range_constraint_4 * SHIFT_12_TO_14 - p_y_high_limbs_range_constraint_tail;
492 tmp_29 *= lagrange_even_in_minicircuit;
493 tmp_29 *= scaling_factor;
497 auto tmp_30 = (p_y_high_limbs_range_constraint_3_shift * SHIFT_8_TO_14 - p_y_high_limbs_range_constraint_4_shift);
499 tmp_30 *= lagrange_even_in_minicircuit;
500 tmp_30 *= scaling_factor;
504 auto tmp_31 = (z_low_limbs_range_constraint_4 * SHIFT_12_TO_14 - z_low_limbs_range_constraint_tail);
505 tmp_31 *= lagrange_even_in_minicircuit;
506 tmp_31 *= scaling_factor;
510 auto tmp_32 = (z_low_limbs_range_constraint_4_shift * SHIFT_12_TO_14 - z_low_limbs_range_constraint_tail_shift);
511 tmp_32 *= lagrange_even_in_minicircuit;
512 tmp_32 *= scaling_factor;
516 auto tmp_33 = (z_high_limbs_range_constraint_4 * SHIFT_4_TO_14 - z_high_limbs_range_constraint_tail);
517 tmp_33 *= lagrange_even_in_minicircuit;
518 tmp_33 *= scaling_factor;
522 auto tmp_34 = (z_high_limbs_range_constraint_4_shift * SHIFT_4_TO_14 - z_high_limbs_range_constraint_tail_shift);
523 tmp_34 *= lagrange_even_in_minicircuit;
524 tmp_34 *= scaling_factor;
530 (accumulator_low_limbs_range_constraint_4 * SHIFT_12_TO_14 - accumulator_low_limbs_range_constraint_tail);
531 tmp_35 *= lagrange_even_in_minicircuit;
532 tmp_35 *= scaling_factor;
537 auto tmp_36 = (accumulator_low_limbs_range_constraint_4_shift * SHIFT_12_TO_14 -
538 accumulator_low_limbs_range_constraint_tail_shift);
539 tmp_36 *= lagrange_even_in_minicircuit;
540 tmp_36 *= scaling_factor;
546 (accumulator_high_limbs_range_constraint_4 * SHIFT_12_TO_14 - accumulator_high_limbs_range_constraint_tail);
547 tmp_37 *= lagrange_even_in_minicircuit;
548 tmp_37 *= scaling_factor;
553 auto tmp_38 = (accumulator_high_limbs_range_constraint_3_shift * SHIFT_8_TO_14 -
554 accumulator_high_limbs_range_constraint_4_shift);
555 tmp_38 *= lagrange_even_in_minicircuit;
556 tmp_38 *= scaling_factor;
560 auto tmp_39 = (quotient_low_limbs_range_constraint_4 * SHIFT_12_TO_14 - quotient_low_limbs_range_constraint_tail);
561 tmp_39 *= lagrange_even_in_minicircuit;
562 tmp_39 *= scaling_factor;
568 (quotient_low_limbs_range_constraint_4_shift * SHIFT_12_TO_14 - quotient_low_limbs_range_constraint_tail_shift);
569 tmp_40 *= lagrange_even_in_minicircuit;
570 tmp_40 *= scaling_factor;
575 auto tmp_41 = (quotient_high_limbs_range_constraint_4 * SHIFT_12_TO_14 - quotient_high_limbs_range_constraint_tail);
576 tmp_41 *= lagrange_even_in_minicircuit;
577 tmp_41 *= scaling_factor;
582 (quotient_high_limbs_range_constraint_3_shift * SHIFT_10_TO_14 - quotient_high_limbs_range_constraint_4_shift);
583 tmp_42 *= lagrange_even_in_minicircuit;
584 tmp_42 *= scaling_factor;
590 auto tmp_43 = (p_x_low_limbs + p_x_low_limbs_shift * LIMB_SHIFT) - x_lo_y_hi;
591 tmp_43 *= lagrange_even_in_minicircuit;
592 tmp_43 *= scaling_factor;
596 auto tmp_44 = (p_x_high_limbs + p_x_high_limbs_shift * LIMB_SHIFT) - x_hi_z_1;
597 tmp_44 *= lagrange_even_in_minicircuit;
598 tmp_44 *= scaling_factor;
601 auto tmp_45 = (p_y_low_limbs + p_y_low_limbs_shift * LIMB_SHIFT) - y_lo_z_2;
602 tmp_45 *= lagrange_even_in_minicircuit;
603 tmp_45 *= scaling_factor;
607 auto tmp_46 = (p_y_high_limbs + p_y_high_limbs_shift * LIMB_SHIFT) - x_lo_y_hi_shift;
608 tmp_46 *= lagrange_even_in_minicircuit;
609 tmp_46 *= scaling_factor;
613 auto tmp_47 = (z_low_limbs + z_high_limbs * LIMB_SHIFT) - x_hi_z_1_shift;
614 tmp_47 *= lagrange_even_in_minicircuit;
615 tmp_47 *= scaling_factor;
619 auto tmp_48 = (z_low_limbs_shift + z_high_limbs_shift * LIMB_SHIFT) - y_lo_z_2_shift;
620 tmp_48 *= lagrange_even_in_minicircuit;
621 tmp_48 *= scaling_factor;