function cosmahtv(nhid,nobs) global pstr pstr = mfilename global lstr rstr global maxr maxr = 0; while 1 p0 = pnormdim(rand(nhid,1),1); p1 = pnormdim(rand(nhid,1),1); q0 = pnormdim(rand(nobs,nhid),1); q1 = pnormdim(rand(nobs,nhid),1); r0 = q0 * p0; r1 = q1 * p1; lhs = TV(r0-r1); d0 = TV(p0-p1); d1 = tvmax(q0,q1); %rhs = inclexcl([d0 d1]); rhs = max(d0,d1); r = lhs / rhs; maxr = max(maxr,r); fprintf('RATIO_________________________ maxr = %1.9f \n',maxr); end function r = hidobs(p,q) [nobs,nhid] = size(q); % q is o x h % p is h x 1 r = q * p; return function dd = tvmat(A,B) dd = zeros(1,size(A,2)); for i=1:size(A,2) dd(i) = TV(A(:,i)-B(:,i)); end return function d = tvcross(A,B) d = 0; for i=1:size(A,2) for j=1:size(A,2) d = max(d, TV(A(:,i)-B(:,j)) ); end end return function d = tvmax(A,B) d = 0; for i=1:size(A,2) d = max(d, TV(A(:,i)-B(:,i)) ); end return return