@@ -593,19 +593,15 @@ static void secp256k1_gej_add_ge(secp256k1_gej *r, const secp256k1_gej *a, const
593
593
secp256k1_fe_sqr (& t , & rr_alt ); /* t = Ralt^2 (1) */
594
594
secp256k1_fe_mul (& r -> z , & a -> z , & m_alt ); /* r->z = Malt*Z (1) */
595
595
infinity = secp256k1_fe_normalizes_to_zero (& r -> z ) & ~a -> infinity ;
596
- secp256k1_fe_mul_int (& r -> z , 2 ); /* r->z = Z3 = 2*Malt*Z (2) */
597
596
secp256k1_fe_negate (& q , & q , 1 ); /* q = -Q (2) */
598
597
secp256k1_fe_add (& t , & q ); /* t = Ralt^2-Q (3) */
599
- secp256k1_fe_normalize_weak (& t );
600
- r -> x = t ; /* r->x = Ralt^2-Q (1) */
601
- secp256k1_fe_mul_int (& t , 2 ); /* t = 2*x3 (2) */
602
- secp256k1_fe_add (& t , & q ); /* t = 2*x3 - Q: (4) */
598
+ r -> x = t ; /* r->x = Ralt^2-Q (3) */
599
+ secp256k1_fe_mul_int (& t , 2 ); /* t = 2*x3 (6) */
600
+ secp256k1_fe_add (& t , & q ); /* t = 2*x3 - Q: (8) */
603
601
secp256k1_fe_mul (& t , & t , & rr_alt ); /* t = Ralt*(2*x3 - Q) (1) */
604
602
secp256k1_fe_add (& t , & n ); /* t = Ralt*(2*x3 - Q) + M^3*Malt (3) */
605
- secp256k1_fe_negate (& r -> y , & t , 3 ); /* r->y = Ralt*(Q - 2x3) - M^3*Malt (4) */
606
- secp256k1_fe_normalize_weak (& r -> y );
607
- secp256k1_fe_mul_int (& r -> x , 4 ); /* r->x = X3 = 4*(Ralt^2-Q) */
608
- secp256k1_fe_mul_int (& r -> y , 4 ); /* r->y = Y3 = 4*Ralt*(Q - 2x3) - 4*M^3*Malt (4) */
603
+ secp256k1_fe_negate (& r -> y , & t , 3 ); /* r->y = Ralt*(Q - 2*x3) - M^3*Malt (4) */
604
+ secp256k1_fe_half (& r -> y ); /* r->y = (Ralt*(Q - 2*x3) - M^3*Malt)/2 (3) */
609
605
610
606
/** In case a->infinity == 1, replace r with (b->x, b->y, 1). */
611
607
secp256k1_fe_cmov (& r -> x , & b -> x , a -> infinity );
0 commit comments