@@ -319,11 +319,11 @@ where
319319 result = (CurveJ ::point_at_infinity (), JTranscript ::new ());
320320 } else if (lhs_infinity & !rhs_infinity ) {
321321 let new_transcript =
322- JTranscript { x3 : p2 .x , y3 : p2 .y , z3 : B :: one () , lambda_numerator : B ::zero () };
322+ JTranscript { x3 : p2 .x , y3 : p2 .y , z3 : p2 . z , lambda_numerator : B ::zero () };
323323 result = (p2 , new_transcript );
324324 } else if (rhs_infinity & !lhs_infinity ) {
325325 let new_transcript =
326- JTranscript { x3 : self .x , y3 : self .y , z3 : B :: one () , lambda_numerator : B ::zero () };
326+ JTranscript { x3 : self .x , y3 : self .y , z3 : self . z , lambda_numerator : B ::zero () };
327327 result = (self , new_transcript );
328328 }
329329 result
@@ -667,16 +667,17 @@ where
667667 mut points : [Self ; Size ],
668668 mut scalars : [ScalarField <NScalarSlices >; Size ],
669669 ) -> (Self , [AffineTranscript <B >; NScalarSlices * Size + NScalarSlices * 4 + Size * 9 - 3 ]) {
670- let mut (accumulator , transcript ): (Self , [JTranscript <B >; NScalarSlices * Size + NScalarSlices * 4 + Size * 9 - 3 ]) =
671- CurveJ ::msm_partial (points , scalars );
672- let op = accumulator .sub (CurveJ ::offset_generator_final ());
673- transcript [73 * Size + 252 ] = op .1 ;
674- accumulator = op .0 ;
675- let affine_transcript : [AffineTranscript <B >; NScalarSlices * Size + NScalarSlices * 4 + Size * 9 - 3 ] =
676- AffineTranscript ::from_jacobian_transcript (transcript );
670+ let mut (accumulator , transcript )
671+ : (Self , [JTranscript <B >; NScalarSlices * Size + NScalarSlices * 4 + Size * 9 - 3 ]) =
672+ CurveJ ::msm_partial (points , scalars );
673+ let op = accumulator .sub (CurveJ ::offset_generator_final ());
674+ transcript [73 * Size + 252 ] = op .1 ;
675+ accumulator = op .0 ;
676+ let affine_transcript : [AffineTranscript <B >; NScalarSlices * Size + NScalarSlices * 4 + Size * 9 - 3 ] =
677+ AffineTranscript ::from_jacobian_transcript (transcript );
677678
678- (accumulator , affine_transcript )
679- }
679+ (accumulator , affine_transcript )
680+ }
680681
681682 pub (crate ) unconstrained fn compute_linear_expression_transcript <let NScalarSlices : u32 , let NMuls : u32 , let NAdds : u32 >(
682683 mut mul_points : [Curve ; NMuls ],
@@ -692,22 +693,23 @@ where
692693 add_j [i ] = CurveJ ::from (add_points [i ]);
693694 }
694695
695- let mut (accumulator , transcript ): (Self , [JTranscript <B >; NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 + NAdds - 3 ]) =
696- CurveJ ::msm_partial (mul_j , scalars );
697- let mut transcript_ptr : u32 = NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 - 4 ;
698- for i in 0 ..NAdds {
699- let op = accumulator .conditional_incomplete_add (add_j [i ], !add_j [i ].is_infinity );
696+ let mut (accumulator , transcript )
697+ : (Self , [JTranscript <B >; NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 + NAdds - 3 ]) =
698+ CurveJ ::msm_partial (mul_j , scalars );
699+ let mut transcript_ptr : u32 = NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 - 4 ;
700+ for i in 0 ..NAdds {
701+ let op = accumulator .conditional_incomplete_add (add_j [i ], !add_j [i ].is_infinity );
702+ transcript [transcript_ptr ] = op .1 ;
703+ accumulator = op .0 ;
704+ transcript_ptr += 1 ;
705+ }
706+
707+ let op = accumulator .sub (CurveJ ::offset_generator_final ());
700708 transcript [transcript_ptr ] = op .1 ;
701709 accumulator = op .0 ;
702- transcript_ptr += 1 ;
703- }
710+ let affine_transcript : [ AffineTranscript < B >; NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 + NAdds - 3 ] =
711+ AffineTranscript :: from_jacobian_transcript ( transcript );
704712
705- let op = accumulator .sub (CurveJ ::offset_generator_final ());
706- transcript [transcript_ptr ] = op .1 ;
707- accumulator = op .0 ;
708- let affine_transcript : [AffineTranscript <B >; NScalarSlices * NMuls + NScalarSlices * 4 + NMuls * 9 + NAdds - 3 ] =
709- AffineTranscript ::from_jacobian_transcript (transcript );
710-
711- (accumulator , affine_transcript )
712- }
713+ (accumulator , affine_transcript )
714+ }
713715}
0 commit comments