%function g = tryallmu(phi,m,n) function g = tryallmu(phi) global dims X iix LBK UBK m n n1 Ainf Binf Ainf1 Binf1 LBf UBf LBf1 UBf1 phi = phi(:); phi0 = phi; g = 1; for mind = 2:2^m-2 phi = phi0; mset = dec2bin(mind,m); muf = find(mset=='1'); muv = ismember(X(:,1),muf); muv = muv(iix); muv = reshape(muv,size(phi)); sig = muv*2-1; [K,fval] = linprog(-phi.*sig,[],[],sig',0,LBK,UBK); K = K.*sig; ip = find(K>=0); in = find(K<0); K(ip) = K(ip)/sum(K(ip)); K(in) = K(in)/abs(sum(K(in))); % need this!!!! K1 = getK1(K,m,n); [x,fval] = linprog(-K1,Ainf1,Binf1,[],[],LBf1,UBf1); phi1 = round(x-min(x))'; s2 = sum(K.*(K>0))+phi1*K1; s1 = sum(phi'*K); g = (g & (s1 <= s2+1e-8)); if ~g 'bla' end muv = (K>0); phi = phi0 - muv; phi1 = getK1(K.*phi,m,n); g1 = all(Ainf1*phi1<=Binf1+1e-8); %if ~g1 % 'nope, still not lip' % keyboard %end end return