source 2007 Hisil--Carter--Dawson assume X2 = 1 compute S0 = Y2^2 compute S1 = Z2^2 compute S2 = (Y2+Z2)^2-S0-S1 compute S3 = 2 Y2 compute S4 = 2 Z2 compute R0 = X1^2 compute R1 = Y1^2 compute R2 = Z1^2 compute R3 = X1+Y1 compute Y3 = Y1+Z1 compute Y3 = Y3^2 compute Z3 = X1+Z1 compute Z3 = Z3^2 compute X3 = R3^2 compute R3 = Y3-R1 compute R3 = R3-R2 compute Y3 = R0 S2 compute Y3 = Y3-R3 compute R3 = X3-R0 compute R3 = R3-R1 compute Z3 = Z3-R0 compute Z3 = Z3-R2 compute X3 = R1 S4 compute R0 = Z3 S0 compute X3 = X3-R0 compute Z3 = R2 S3 compute R0 = R3 S1 compute Z3 = Z3-R0