function checkpsi1(m,n) n1 = n-1; phi = zeros(m^n,1); phi1 = zeros(m^n1,1); LBK = -ones(size(phi)); UBK = ones(size(phi)); LBg = zeros(size(phi)); UBg = n+zeros(size(phi)); LBg1 = zeros(size(phi1)); UBg1 = n1+zeros(size(phi1)); [Aing,Bing] = gradab(m^n); [Ainl,Binl] = lipab(m,n); [Ain1,Bin1] = lipab(m,n1); GG = gengray(n,m); iif = invperm(GG+1); good = 1; while good K = genK(m,n); %[x,fval] = linprog(-K,Ainl,Binl,[],[],0*K,n1+0*K); [x,fval] = linprog(-K,Ainl,Binl,[],[],0*K,n+0*K); phi = x'; if phi*K < 0, K = -K; end phi = max(0,phi-1); s1 = phi*K; K1 = getK1(K,m,n); %[x,fval] = linprog(-K1,Ain1,Bin1,[],[],0*K1,n1+0*K1); %phi1 = x'; s2 = Psi(K1,m,n-1); %good = (phi*K <= phi1*K1+1e-9); good = (s1 <= s2 + 1e-9); if ~good 'wtf' save WTF K phi keyboard end end return function S = Psi(K,m,n) S = 0; for t=1:n S = S + sum(K.*(K>0)); K = getK1(K,m,n-t+1); end return function S = PsiT(K,m,n,T) S = 0; for t=1:T S = S + sum(K.*(K>0)); K = getK1(K,m,n-t+1); end return function b=flip b = round(rand); return