function E = maxdev_sym3(P,Psig,calF,n) % computes max_{f\in F} (1/n) sum_i sig_i(f(X_i)-f(Y_i)) % i.e., second symmetrization % where f: X -> R % each column of F is such an f %f = [1:m]'; %Psig = stat_sym_sig(P,m,n,f); %Psig = ones(2^n,1); Psig = Psig/sum(Psig); [m,F] = size(calF); E = 0; for xi=1:m^n x = i2c(xi,m,n); FX = getFX(calF,x); for si=1:2^n sig = 2*(i2c(si,2,n)-1)-1; SIG = repmat(sig,[F 1]); Z = max(sum(SIG.*(FX),2)/n); E = E + Z * Psig(si) * P(xi); end end return function FX = getFX(calF,x) [m,F] = size(calF); n = length(x); FX = zeros(F,n); for f=1:F for i=1:n FX(f,i) = calF(x(i),f); end end return function c=i2c(i,m,n) dims = repmat(m,[1 n]); c = ind2coord(i,dims); return