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