source 2008 Bernstein-–Lange-–Rezaeian Farashahi
compute W1 = X1 + Y1
compute W2 = X2 + Y2
compute A = X1(X1+Z1)
compute B = Y1(Y1+Z1)
compute C = Z1 Z2
compute D = W2 Z2
compute E = d1 C^2
compute H = (d1 Z2 + d2 W2)W1 C
compute I = d1 C Z1
compute U = E + A D
compute V = E + B D
compute S = U V
compute X3 = S Y1 + (H + X2(I + A(Y2+Z2)))V Z1
compute Y3 = S X1 + (H + Y2(I + B(X2+Z2)))U Z1
compute Z3 = S Z1