source 2007 Bernstein--Lange
compute U1 = X1 Z2
compute U2 = X2 Z1
compute S1 = Y1 Z2
compute S2 = Y2 Z1
compute ZZ = Z1 Z2
compute T = U1+U2
compute TT = T^2
compute M = S1+S2
compute R = TT-U1 U2+a ZZ^2
compute F = ZZ M
compute L = M F
compute LL = L^2
compute G = (T+L)^2-TT-LL
compute W = 2 R^2-G
compute X3 = 2 F W
compute Y3 = R(G-2 W)-2 LL
compute Z3 = 4 F F^2