@@ -260,27 +260,30 @@ where
260260 . fold ( E :: Fr :: ZERO , |acc_eval, ( ( points, evals) , proof_eval) | {
261261 let r_poly = lagrange_interpolate ( points, evals) ;
262262 let r_eval = eval_polynomial ( & r_poly, x3) ;
263- let eval = points. iter ( ) . fold ( * proof_eval - & r_eval, |eval, point| {
264- eval * & ( x3 - point) . invert ( ) . unwrap ( )
265- } ) ;
263+ // eval = (proof_eval - r_eval) / prod_i (x3 - point_i)
264+ let den = points
265+ . iter ( )
266+ . fold ( E :: Fr :: ONE , |acc, point| acc * & ( x3 - point) ) ;
267+ let eval = ( * proof_eval - & r_eval) * den. invert ( ) . unwrap ( ) ;
266268 acc_eval * & ( x2) + & eval
267269 } ) ;
268270
269271 let x4: E :: Fr = transcript. squeeze_challenge ( ) ;
270272
271273 let final_com = {
272- let mut polys = q_coms;
274+ let mut coms = q_coms;
273275 let mut f_com_as_msm = MSMKZG :: new ( ) ;
276+
274277 f_com_as_msm. append_term ( E :: Fr :: ONE , f_com) ;
275- polys . push ( f_com_as_msm) ;
278+ coms . push ( f_com_as_msm) ;
276279
277280 #[ cfg( feature = "truncated-challenges" ) ]
278281 let powers = truncated_powers ( x4) ;
279282
280283 #[ cfg( not( feature = "truncated-challenges" ) ) ]
281284 let powers = powers ( x4) ;
282285
283- msm_inner_product ( & polys , powers)
286+ msm_inner_product ( & coms , powers)
284287 } ;
285288
286289 let v = {
0 commit comments