@@ -117,25 +117,17 @@ where
117117
118118 let eq_poly = eval_eq ( & claim. point . 0 [ 1 ..] ) ;
119119
120- let mut sums_x = EF :: zero_vec ( up_layer. len ( ) / 4 ) ;
121- let mut sums_one_minus_x = EF :: zero_vec ( up_layer. len ( ) / 4 ) ;
122-
123- sums_x
124- . par_iter_mut ( )
125- . zip ( sums_one_minus_x. par_iter_mut ( ) )
126- . enumerate ( )
127- . for_each ( |( i, ( x, one_minus_x) ) | {
120+ let sum_x = ( 0 ..up_layer. len ( ) / 4 )
121+ . into_par_iter ( )
122+ . map ( |i| {
128123 let eq_eval = eq_poly[ i] ;
129- let u0 = up_layer[ i] ;
130- let u1 = up_layer[ quarter_len + i] ;
131124 let u2 = up_layer[ mid_len + i] ;
132125 let u3 = up_layer[ mid_len + quarter_len + i] ;
133- * x = eq_eval * u2 * u3;
134- * one_minus_x = eq_eval * ( u0 * u3 + u1 * u2 ) ;
135- } ) ;
126+ eq_eval * u2 * u3
127+ } )
128+ . sum :: < EF > ( ) ;
136129
137- let sum_x = sums_x. into_par_iter ( ) . sum :: < EF > ( ) ;
138- let sum_one_minus_x = sums_one_minus_x. into_par_iter ( ) . sum :: < EF > ( ) ;
130+ let sum_one_minus_x = ( claim. value - sum_x * claim. point [ 0 ] ) / ( EF :: ONE - claim. point [ 0 ] ) ;
139131
140132 let mid_len = up_layer. len ( ) / 2 ;
141133 let quarter_len = mid_len / 2 ;
@@ -244,40 +236,28 @@ where
244236
245237 let mut eq_poly_packed = pack_extension ( & eq_poly) ;
246238
247- let ( sum_x_packed, sum_one_minus_x_packed) : ( EFPacking < EF > , EFPacking < EF > ) = ( 0
248- ..n_non_zeros_numerator - quarter_len_packed)
239+ let sum_x_packed: EFPacking < EF > = ( 0 ..n_non_zeros_numerator - quarter_len_packed)
249240 . into_par_iter ( )
250241 . map ( |i| {
251242 let eq_eval = eq_poly_packed[ i] ;
252- let u0 = up_layer_packed[ i] ;
253- let u1 = up_layer_packed[ quarter_len_packed + i] ;
254243 let u2 = up_layer_packed[ mid_len_packed + i] ;
255244 let u3 = up_layer_packed[ three_quarter_len_packed + i] ;
256- let x = eq_eval * u2 * u3;
257- let one_minus_x = eq_eval * ( u0 * u3 + u1 * u2) ;
258- ( x, one_minus_x)
245+ eq_eval * u2 * u3
259246 } )
260247 . chain (
261248 ( n_non_zeros_numerator - quarter_len_packed..quarter_len_packed)
262249 . into_par_iter ( )
263250 . map ( |i| {
264251 let eq_eval = eq_poly_packed[ i] ;
265- let u0 = up_layer_packed[ i] ;
266252 let u2 = up_layer_packed[ mid_len_packed + i] ;
267253 let u3 = up_layer_packed[ three_quarter_len_packed + i] ;
268- let eq_eval_times_u3 = eq_eval * u3;
269- let x = eq_eval_times_u3 * u2;
270- let one_minus_x = eq_eval_times_u3 * u0;
271- ( x, one_minus_x)
254+ eq_eval * u3 * u2
272255 } ) ,
273256 )
274- . reduce (
275- || ( EFPacking :: < EF > :: ZERO , EFPacking :: < EF > :: ZERO ) ,
276- |( acc_x, acc_one_minus_x) , ( x, one_minus_x) | ( acc_x + x, acc_one_minus_x + one_minus_x) ,
277- ) ;
257+ . sum ( ) ;
278258
279259 let sum_x = EFPacking :: < EF > :: to_ext_iter ( [ sum_x_packed] ) . sum :: < EF > ( ) ;
280- let sum_one_minus_x = EFPacking :: < EF > :: to_ext_iter ( [ sum_one_minus_x_packed ] ) . sum :: < EF > ( ) ;
260+ let sum_one_minus_x = ( claim . value - sum_x * claim . point [ 0 ] ) / ( EF :: ONE - claim . point [ 0 ] ) ;
281261
282262 let first_sumcheck_polynomial =
283263 & DensePolynomial :: new ( vec ! [
0 commit comments