source 2007 Hisil--Carter--Dawson
assume X2 = 1
compute T0 = X1 Y2
compute T0 = T0+Y1
compute Y3 = Y1 Y2
compute T1 = Y3 X1
compute Y3 = Y3-X1
compute Z3 = Z1 Z2
compute X3 = T0 Z3
compute Y3 = Y3 Z3
compute T1 = d T1
compute Z3 = Z3^2
compute T0 = Z3-T1
compute Z3 = Z3+T1
compute X3 = X3 T0
compute Y3 = Y3 Z3
compute Z3 = Z3 T0
compute Z3 = c Z3