source 2007 Hisil--Carter--Dawson compute R0 = X1^2 compute R1 = Y1^2 compute R2 = Z1^2 compute R3 = R0+R1 compute R4 = R0+R2 compute R5 = R1+R2 compute R0 = X1+Y1 compute R0 = R0^2 compute R0 = R0-R3 compute R1 = X1+Z1 compute R1 = R1^2 compute R1 = R1-R4 compute R2 = Y1+Z1 compute R3 = 2 R3 compute R2 = R2^2 compute R4 = 2 R4 compute R2 = R2-R5 compute R5 = 2 R5 compute X3 = R2-R0 compute R4 = R1+R4 compute X3 = X3 R4 compute Y3 = R0-R1 compute R5 = R2+R5 compute Y3 = Y3 R5 compute Z3 = R1-R2 compute R0 = R0+R3 compute Z3 = Z3 R0