function A = AllRanks(k) % Creates matrices A(1), A(2), ..., A((k^2+1)/2) of size k^2-by-k^2 % and all possible ranks satisfying A^2 = J by a series of switches % starting with the standard form. if (k < 2) return; end A(:,:,1) = MakeStandard(k); for i=1:k-2 V(i,1) = i+1; V(i,2) = i+2; V(i,3) = (k+1)*i+2; V(i,4) = (k+1)*i+2+k; end for i=1:k-3 for j=1:i m=(i*(i-1))/2+j; if j==1 V(m+k-2,1)=(i+2)*k+2; V(m+k-2,2)=(i+2)*(k+1); else V(m+k-2,1)=(i+2)*k+j; V(m+k-2,2)=(i+2)*k+j+1; end V(m+k-2,3)=j*k+i+3; V(m+k-2,4)=(i+1)*k+i+3; end end p = k-2+((k-3)*(k-2))/2; for i=1:floor((k-1)/2) V(p+i,1) = 2*i*k+1; V(p+i,2) = 2*i*(k+1); V(p+i,3) = 1; V(p+i,4) = (2*(i-1)+1)*k+1; end if (k <= 2) return; end [x y] = size(V); for i = 1:x A(:,:,i+1) = MakeSwitch(V(i,1),V(i,2),V(i,3),V(i,4),A(:,:,i)); end