reset data Codewords; reset data Whichslaves; for{master in 1..1} { reset data f; for{i in 1..6} { let f[i] := codes6vec[master,i]; } for{slave in 1..1344} { printf "%d",slave; for{ n1 in {1..6}, n2 in 1..6 diff {n1}, n3 in 1..6 diff {n1,n2}, n4 in 1..6 diff {n1,n2,n3}, n5 in 1..6 diff {n1,n2,n3,n4}, n6 in 1..6 diff {n1,n2,n3,n4,n5} } { reset data g; for{i in 1..6} { let g[i] := if i = 1 then codes6vec[slave,n1] else if i = 2 then codes6vec[slave,n2] else if i = 3 then codes6vec[slave,n3] else if i = 4 then codes6vec[slave,n4] else if i = 5 then codes6vec[slave,n5] else if i = 6 then codes6vec[slave,n6] } if forall{i in 1..6,j in i+1..6} op_xor[ op_reverse[f[i],f[j]], op_reverse[g[i],g[j]] ] != 0 then ; else continue; printf "."; if forall{i in 1..6, j in i+1..6, k in j+1..6} 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],g[6])}; let Whichslaves[master] := Whichslaves[master] union {slave}; continue; } printf "\n"; } } display Codewords, Whichslaves > a23_2-out-Codewords.txt; close a23_2-out-Codewords.txt;