source 2007 Bernstein--Lange
unified
assume Z1 = 1
assume Z2 = 1
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+d) H
compute Y3 = c (E-d) I
compute Z3 = H I
