> with(linalg): > with(ListTools): > A1:= matrix(14,7,[[1,1,0,0,0,0,0],[1,0,1,0,0,0,0], > [1,0,0,1,0,0,0],[1,0,0,0,1,0,0],[1,0,0,0,0,1,0], > [-1,1,0,0,0,0,0],[-1,0,1,0,0,0,0], > [-1,0,0,1,0,0,0],[-1,0,0,0,1,0,0],[-1,0,0,0,0,1,0], > [0,1,1,0,0,0,0],[0,1,0,1,0,0,0],[0,1,0,0,1,0,0], > [0,1,0,0,0,1,0]]); > A2:= matrix(12,7,[[0,-1,1,0,0,0,0],[0,-1,0,1,0,0,0],[0,-1,0,0,1,0,0], > [0,-1,0,0,0,1,0], > [0,0,1,1,0,0,0],[0,0,1,0,1,0,0],[0,0,1,0,0,1,0], > [0,0,-1,1,0,0,0],[0,0,-1,0,1,0,0],[0,0,-1,0,0,1,0], > [0,0,0,1,1,0,0],[0,0,0,1,0,1,0]]); > A3:= matrix(9,7,[[0,0,0,-1,1,0,0],[0,0,0,-1,0,1,0], > [0,0,0,0,1,1,0], > [0,0,0,0,-1,1,0],[0,0,0,0,0,0,1], > [-1/2,1/2,1/2,1/2,1/2,1/2,1/2], > [1/2,-1/2,1/2,1/2,1/2,1/2,1/2], > [1/2,1/2,-1/2,1/2,1/2,1/2,1/2], > [1/2,1/2,1/2,-1/2,1/2,1/2,1/2]]); > A4:= matrix(11,7,[[1/2,1/2,1/2,1/2,-1/2,1/2,1/2], > [1/2,1/2,1/2,1/2,1/2,-1/2,1/2], > [-1/2,-1/2,-1/2,1/2,1/2,1/2,1/2], > [-1/2,-1/2,1/2,-1/2,1/2,1/2,1/2], > [-1/2,-1/2,1/2,1/2,-1/2,1/2,1/2], > [-1/2,-1/2,1/2,1/2,1/2,-1/2,1/2], > [-1/2,1/2,-1/2,-1/2,1/2,1/2,1/2], > [-1/2,1/2,-1/2,1/2,-1/2,1/2,1/2], > [-1/2,1/2,-1/2,1/2,1/2,-1/2,1/2], > [-1/2,1/2,1/2,-1/2,-1/2,1/2,1/2], > [-1/2,1/2,1/2,-1/2,1/2,-1/2,1/2]]); > A5:= matrix(9,7,[[-1/2,1/2,1/2,1/2,-1/2,-1/2,1/2], > [1/2,-1/2,-1/2,-1/2,1/2,1/2,1/2], > [1/2,-1/2,-1/2,1/2,-1/2,1/2,1/2], > [1/2,-1/2,-1/2,1/2,1/2,-1/2,1/2], > [1/2,-1/2,1/2,-1/2,-1/2,1/2,1/2], > [1/2,-1/2,1/2,-1/2,1/2,-1/2,1/2], > [1/2,-1/2,1/2,1/2,-1/2,-1/2,1/2], > [1/2,1/2,-1/2,-1/2,-1/2,1/2,1/2], > [1/2,1/2,-1/2,-1/2,1/2,-1/2,1/2]]); > A6:= matrix(9,7,[[1/2,1/2,-1/2,1/2,-1/2,-1/2,1/2], > [1/2,1/2,1/2,-1/2,-1/2,-1/2,1/2], > [-1/2,-1/2,-1/2,-1/2,-1/2,1/2,1/2], > [-1/2,-1/2,-1/2,-1/2,1/2,-1/2,1/2], > [-1/2,-1/2,-1/2,1/2,-1/2,-1/2,1/2], > [-1/2,-1/2,1/2,-1/2,-1/2,-1/2,1/2], > [-1/2,1/2,-1/2,-1/2,-1/2,-1/2,1/2], > [1/2,-1/2,-1/2,-1/2,-1/2,-1/2,1/2], > [0,0,0,0,0,0,0]]); > > A:= stackmatrix(A1,A2,A3,A4,A5,A6): rowdim(A); coldim(A); > Cnt:= 0; > ff:= proc(x) > if irem(C[x,1],12)=0 then x; > else 64; > end if; > end proc: > for a from 0 by 3 to 11 do > for b from 0 by 3 to 11 do > for c from 0 by 3 to 11 do > for d from 0 by 3 to 11 do > for e from 0 by 3 to 11 do > for f from 0 by 3 to 11 do > for g from 0 by 3 to 11 do > e1:= (b-c)/2: e2:= (b+c)/2: > e3:= d+e2: e4:= e+e3: e5:= f+e4: e6:= g+e5: > e7:= (2*a)-e1+e2+e3+e4+e5+e6: > B:= matrix(7,1,[[e1],[e2],[e3],[e4],[e5],[e6],[e7]]): > C:= multiply(A,B): > S:= seq(ff(i),i=1..64): > L:= MakeUnique([S]): > M:= submatrix(A,L,[1,2,3,4,5,6,7]): > if rank(M)=7 then Cnt:=Cnt+1; > end if: > end do; end do; end do; end do; > end do; end do; end do; > > Cnt;