source 1998 Hasegawa--Nakajima--Matsui, page 188 parameter half assume half 2=1 compute R1 = X1 compute R2 = Y1 compute R3 = Z1 compute R4 = X2 compute R5 = Y2 compute R6 = Z2 compute R7 = R6^2 compute R1 = R1 R7 compute R7 = R6 R7 compute R2 = R2 R7 compute R7 = R3^2 compute R8 = R4 R7 compute R7 = R3 R7 compute R7 = R5 R7 compute R2 = R2-R7 compute R7 = 2 R7 compute R7 = R2+R7 compute R1 = R1-R8 compute R8 = 2 R8 compute R8 = R1+R8 compute R3 = R3 R6 compute R3 = R3 R1 compute R7 = R7 R1 compute R1 = R1^2 compute R8 = R8 R1 compute R7 = R7 R1 compute R1 = R2^2 compute R1 = R1-R8 compute R8 = R8-R1 compute R8 = R8-R1 compute R8 = R8 R2 compute R2 = R8-R7 compute R2 = half R2 compute X3 = R1 compute Y3 = R2 compute Z3 = R3