function mask = getgmask(phi,m,n) global nstate nstate = m; %y = zeros(1,n); dims = repmat([m],[1 n]); global FN FN{n} = phi; global nstate nstate = m; y = zeros(1,n); dims = repmat([m],[1 n]); xx = list_all_ind(repmat([m],[1 n-1])); global FN FN{n} = phi; mask = {}; for i=1:n for xind = 1:size(xx,1) %for xind = 1; xl = xx(xind,1:i-1); xr = xx(xind,i:n-1); fv = []; for xj = 1:m x = [xl xj xr]; fv(end+1) = F(x); end fvu = unique(round(fv*1e5)); if length(fvu)==2 ii = find(fv-min(fv)<1e-8); mask{1,i} = ii; break; else %'hmmm' %keyboard end end end return function r = F(x) global nstate lenseq = length(x); global FN FF = FN{lenseq}; ind = coord2ind(x,(repmat(nstate,1,lenseq))); r = FF(ind); return function b = myeq(x,y) b = abs(x-y) < 1e-9; return