source 2007 Bernstein--Lange
compute A2 = X2^2
compute C2 = Z2^2
compute D2 = A2+C2
compute B2 = (X2+Z2)^2-D2
compute E2 = B2+Y2
compute A1 = X1^2
compute C1 = Z1^2
compute D1 = A1+C1
compute B1 = (X1+Z1)^2-D1
compute E1 = B1+Y1
compute A1A2 = A1 A2
compute B1B2 = B1 B2
compute C1C2 = C1 C2
compute Y1Y2 = Y1 Y2
compute F = C1C2+A1A2
compute G = 2 B1B2
compute X3 = E1 E2-B1B2-Y1Y2
compute Y3 = F(4 Y1Y2+a G)+(D1 D2-F)G
compute Z3 = 2(C1C2-A1A2)