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