@@ -22,16 +22,17 @@ func (e *E12) Square034(api frontend.API, x E12) *E12 {
2222
2323 c0 .B0 .Sub (api , x .C0 .B0 , x .C1 .B0 )
2424 c0 .B1 .Neg (api , x .C1 .B1 )
25- c0 .B2 = E2 {0 , 0 }
2625
2726 c3 .B0 = x .C0 .B0
2827 c3 .B1 .Neg (api , x .C1 .B0 )
2928 c3 .B2 .Neg (api , x .C1 .B1 )
3029
3130 c2 .Mul0By01 (api , x .C0 .B0 , x .C1 .B0 , x .C1 .B1 )
32- c3 .MulBy01 (api , c0 .B0 , c0 .B1 ).Add (api , c3 , c2 )
33- e .C1 .B0 .Add (api , c2 .B0 , c2 .B0 )
34- e .C1 .B1 .Add (api , c2 .B1 , c2 .B1 )
31+ c3 .MulBy01 (api , c0 .B0 , c0 .B1 )
32+ c3 .B0 .Add (api , c3 .B0 , c2 .B0 )
33+ c3 .B1 .Add (api , c3 .B1 , c2 .B1 )
34+ e .C1 .B0 .MulByFp (api , c2 .B0 , 2 )
35+ e .C1 .B1 .MulByFp (api , c2 .B1 , 2 )
3536
3637 e .C0 .B0 = c3 .B0
3738 e .C0 .B1 .Add (api , c3 .B1 , c2 .B0 )
@@ -49,8 +50,7 @@ func (e *E12) MulBy034(api frontend.API, c3, c4 E2) *E12 {
4950 b := e .C1
5051
5152 b .MulBy01 (api , c3 , c4 )
52-
53- c3 .Add (api , E2 {A0 : 1 , A1 : 0 }, c3 )
53+ c3 .A0 = api .Add (1 , c3 .A0 )
5454 d .Add (api , e .C0 , e .C1 )
5555 d .MulBy01 (api , c3 , c4 )
5656
@@ -81,17 +81,19 @@ func Mul034By034(api frontend.API, d3, d4, c3, c4 E2) *[5]E2 {
8181}
8282
8383func Mul01234By034 (api frontend.API , x [5 ]E2 , z3 , z4 E2 ) * E12 {
84- var a , b , z1 , z0 , one E6
85- var zero E2
86- zero .SetZero ()
87- one .SetOne ()
84+ var a , b , z1 , z0 E6
8885 c0 := & E6 {B0 : x [0 ], B1 : x [1 ], B2 : x [2 ]}
89- c1 := & E6 {B0 : x [3 ], B1 : x [4 ], B2 : zero }
90- a .Add (api , one , E6 {B0 : z3 , B1 : z4 , B2 : zero })
91- b .Add (api , * c0 , * c1 )
92- a .Mul (api , a , b )
86+ a .B0 .A0 = api .Add (z3 .A0 , 1 )
87+ a .B0 .A1 = z3 .A1
88+ a .B1 = z4
89+ a .B2 .A0 = 0
90+ a .B2 .A1 = 0
91+ b .B0 .Add (api , c0 .B0 , x [3 ])
92+ b .B1 .Add (api , c0 .B1 , x [4 ])
93+ b .B2 = c0 .B2
94+ b .MulBy01 (api , a .B0 , a .B1 )
9395 c := * Mul01By01 (api , z3 , z4 , x [3 ], x [4 ])
94- z1 .Sub (api , a , * c0 )
96+ z1 .Sub (api , b , * c0 )
9597 z1 .Sub (api , z1 , c )
9698 z0 .MulByNonResidue (api , c )
9799 z0 .Add (api , z0 , * c0 )
@@ -103,12 +105,11 @@ func Mul01234By034(api frontend.API, x [5]E2, z3, z4 E2) *E12 {
103105
104106func (e * E12 ) MulBy01234 (api frontend.API , x [5 ]E2 ) * E12 {
105107 var a , b , c , z1 , z0 E6
106- var zero E2
107- zero .SetZero ()
108108 c0 := & E6 {B0 : x [0 ], B1 : x [1 ], B2 : x [2 ]}
109- c1 := & E6 {B0 : x [3 ], B1 : x [4 ], B2 : zero }
110109 a .Add (api , e .C0 , e .C1 )
111- b .Add (api , * c0 , * c1 )
110+ b .B0 .Add (api , x [0 ], x [3 ])
111+ b .B1 .Add (api , x [1 ], x [4 ])
112+ b .B2 = x [2 ]
112113 a .Mul (api , a , b )
113114 b .Mul (api , e .C0 , * c0 )
114115 c = e .C1
0 commit comments