@@ -236,6 +236,9 @@ where
236236
237237 let mut eq_poly_packed = pack_extension ( & eq_poly) ;
238238
239+ // TODO for the top layer, the denomiators have a structured form: constant - index.
240+ // We can skip one EE multilication in the sumcheck computation.
241+
239242 let sum_x_packed: EFPacking < EF > = ( 0 ..n_non_zeros_numerator - quarter_len_packed)
240243 . into_par_iter ( )
241244 . map ( |i| {
@@ -411,37 +414,6 @@ where
411414 Ok ( Evaluation :: new ( next_point, next_claim) )
412415}
413416
414- pub struct GKRQuotientComputation < EF > {
415- u4_const : EF ,
416- u5_const : EF ,
417- }
418-
419- impl < IF : ExtensionField < PF < EF > > , EF : ExtensionField < IF > > SumcheckComputation < IF , EF >
420- for GKRQuotientComputation < EF >
421- {
422- fn eval ( & self , point : & [ IF ] , _: & [ EF ] ) -> EF {
423- // U4.U2.U3 + U5.[U0.U3 + U1.U2]
424- self . u4_const * point[ 2 ] * point[ 3 ]
425- + self . u5_const * ( point[ 0 ] * point[ 3 ] + point[ 1 ] * point[ 2 ] )
426- }
427- fn degree ( & self ) -> usize {
428- 2
429- }
430- }
431-
432- impl < EF : ExtensionField < PF < EF > > > SumcheckComputationPacked < EF > for GKRQuotientComputation < EF > {
433- fn eval_packed_base ( & self , _: & [ PFPacking < EF > ] , _: & [ EF ] ) -> EFPacking < EF > {
434- todo ! ( )
435- }
436- fn eval_packed_extension ( & self , point : & [ EFPacking < EF > ] , _: & [ EF ] ) -> EFPacking < EF > {
437- point[ 2 ] * point[ 3 ] * self . u4_const
438- + ( point[ 0 ] * point[ 3 ] + point[ 1 ] * point[ 2 ] ) * self . u5_const
439- }
440- fn degree ( & self ) -> usize {
441- 2
442- }
443- }
444-
445417fn sum_quotients_2_by_2 < EF : PrimeCharacteristicRing + Sync + Send + Copy > (
446418 layer : & [ EF ] ,
447419 n_non_zeros_numerator : Option < usize > ,
0 commit comments