function EC = hequiv_classes(S) % for all a,b in S, a H b iff a R b and a L b % brute force [n,n] = size(S); EQ = zeros(n); for i=1:n for j=i+1:n Sil = Sa(S,i); Sjl = Sa(S,j); Sir = aS(S,i); Sjr = aS(S,j); EQ(i,j) = (seteq(Sil,Sjl) & seteq(Sir,Sjr)) ; end end EQ = EQ+EQ'+eye(n); X = 1:n; EC={}; while ~isempty(X) x = X(1); Ex = find(EQ(x,:)); EC{end+1} = Ex; X = setdiff(X,Ex); end return function Si = Sa(S,a) [n,n] = size(S); Si = []; for i=1:n Si(end+1) = S(i,a); end return function Si = aS(S,a) [n,n] = size(S); Si = []; for i=1:n Si(end+1) = S(a,i); end return