source 2007 Bernstein--Lange assume Z2 = 1 compute A = Z1 compute B = d A^2 compute C = X1 X2 compute D = Y1 Y2 compute E = C D compute H = C-D compute I = (X1+Y1) (X2+Y2)-C-D compute X3 = c (E+B) H compute Y3 = c (E-B) I compute Z3 = A H I