source 1998 Hasegawa--Nakajima--Matsui, page 188 parameter half assume half*2=1 compute R1 = X1 compute R2 = Y1 compute R3 = Z1 compute R4 = R3^2 compute R3 = R2 R3 compute R3 = 2 R3 compute R4 = R4^2 compute R4 = a R4 compute R5 = R1^2 compute R4 = R4+R5 compute R5 = 2 R5 compute R4 = R4+R5 compute R2 = 2 R2 compute R2 = R2^2 compute R5 = R2^2 compute R5 = half R5 compute R2 = R2 R1 compute R1 = R4^2 compute R1 = R1-R2 compute R1 = R1-R2 compute R2 = R2-R1 compute R2 = R2 R4 compute R2 = R2-R5 compute X3 = R1 compute Y3 = R2 compute Z3 = R3