reset data Codewords; reset data Whichslaves; for{master in 1..1} { reset data f; for{i in 1..5} { let f[i] := codes5vec[master,i]; } for{slave in 1..4032} { printf "%d",slave; for{ n1 in {1..5}, n2 in 1..5 diff {n1}, n3 in 1..5 diff {n1,n2}, n4 in 1..5 diff {n1,n2,n3}, n5 in 1..5 diff {n1,n2,n3,n4} } { reset data g; for{i in 1..5} { let g[i] := if i = 1 then codes5vec[slave,n1] else if i = 2 then codes5vec[slave,n2] else if i = 3 then codes5vec[slave,n3] else if i = 4 then codes5vec[slave,n4] else if i = 5 then codes5vec[slave,n5]; } if forall{i in 1..5,j in i+1..5} op_xor[ op_reverse[f[i],f[j]], op_reverse[g[i],g[j]] ] != 0 then ; else continue; printf "."; if forall{i in 1..5, j in i+1..5, k in j+1..5} op_xor[ op_reverse[ op_xor[op_reverse[f[i],f[j]],11], op_xor[op_reverse[f[i],f[k]],11] ], op_reverse[ op_xor[op_reverse[g[i],g[j]],11], op_xor[op_reverse[g[i],g[k]],11] ] ] != 0 then ; else continue; printf "+"; let Codewords[master,slave] := Codewords[master,slave] union {(g[1],g[2],g[3],g[4],g[5])}; let Whichslaves[master] := Whichslaves[master] union {slave}; continue; } printf "\n"; } } display Codewords, Whichslaves > a24_2-out-Codewords.txt; close a24_2-out-Codewords.txt;