source 2005 Doche--Lange
compute O1 = Z1^2
compute O2 = Z2^2
compute A = X1 O2
compute B = X2 O1
compute C = Y1 O2 Z2
compute D = Y2 O1 Z1
compute E = A + B
compute F = C + D
compute G = E Z1
compute H = F X2 + G Y2
compute Z3 = G Z2
compute I = F + Z3
compute X3 = a2 Z3^2 + F I + E E^2
compute Y3 = I X3 + G^2 H