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)