source 2008 Bernstein-–Lange-–Rezaeian Farashahi parameter d2plusd1 assume d2plusd1 = d2 + d1 parameter d1d1 assume d1d1 = d1^2 compute A = X1 X2 compute B = Y1 Y2 compute C = Z1 Z2 compute D = d1 C compute E = C^2 compute F = d1d1 E compute G = (X1 + Z1)(X2 + Z2) compute H = (Y1 + Z1)(Y2 + Z2) compute I = A + G compute J = B + H compute K = (X1 + Y1)(X2 + Y2) compute U = C(F + d1 K(K + I + J + C)) compute V = U + D F + K(d2(d1 E + G H + A B) + d2plusd1 I J) compute X3 = V + D(A+D)(G+D) compute Y3 = V + D(B+D)(H+D) compute Z3 = U + d2plusd1 C K^2