source 2008 Bernstein--Lange--Rezaeian Farashahi compute w1 = X1+Y1 compute w2 = X2+Y2 compute A = X1^2+X1 compute B = Y1^2+Y1 compute C = d2 w1 w2 compute D = X2 Y2 compute X3 = Y1 + (C + d1 (w1+X2) + A (D+X2)) / (d1 + A w2) compute Y3 = X1 + (C + d1 (w1+Y2) + B (D+Y2)) / (d1 + B w2)