%function S = recsum(K,phi,m,n) function S = recsum(K,phi,m,n,t,lam) dims = repmat([m],[1 n]); dims1 = repmat([m],[1 n-1]); %X = list_all_ind(dims); X1 = list_all_ind(dims1); if n==1 %lam = min(phi); %lam = 1; %S = lam*(max(0,sum(K)) + sum(K.*(K>0))); S = lam*max(0,sum(K)) + sum(K.*(K>0)); else S = 0; for k=1:m ky = [repmat([k], [size(X1,1) 1]) X1]; kyi = coord2ind(ky,dims); Fk = phi(kyi); Kk = K(kyi); %S = S + recsum(Kk,Fk,m,n-1); % this one "works" % not a bound %S = S + recsum(Kk,Fk,m,n-1,min(Fk)); %S = S + recsum(Kk,Fk,m,n-1,t+1,t+1); S = S + recsum(Kk,Fk,m,n-1,t,t); %S = S + sum(max(0,Kk)) + recsum(Kk,max(0,Fk-1),m,n-1); % also too crude %S = S + Psi(Kk,m,n-1); NO!! too crude end end return