function newA = MakeSwitch(p,q,r,s,A) % Performs possible ``switch'' on the matrix A newA = 0; [m n] = size(A); if (p==r | p==s | q==r | q==s | p==q | r==s) return; end if (p<1 | p>n | q<1 | q>n | r<1 | r>m | s<1 | s>m) return; end for i = 1:m if (A(i,p) ~= A(i,q)) return; end end for i = 1:n if (A(r,i) ~= A(s,i)) return; end end if (A(p,r) == 1 & A(p,s) == 0 & A(q,r) == 0 & A(q,s) == 1) else if (A(p,r) == 0 & A(p,s) == 1 & A(q,r) == 1 & A(q,s) == 0) else return; end end newA = A; if (A(p,r) == 1) newA(p,r) = 0; newA(p,s) = 1; newA(q,r) = 1; newA(q,s) = 0; else newA(p,r) = 1; newA(p,s) = 0; newA(q,r) = 0; newA(q,s) = 1; end