function [ED2 A]=transD2(tc,T) %TRANSD2 Expected (Translated) (L2Distance)^2 % % Arguments: % TC document term counts (NOT normalized); assumed that all % documents contain at least one word % T translation matrix % % Returns: % ED2 E_{p(y|x)} ( ||x_i-x_j||_2^2 ) % A E_{p(y|x)} ( ||x_i||_2^2 ) % % Authors: % Joshua V. Dillon; Feb. 21, 2007; jvdillon AAT purdue DDOT edu if nargin~=2 error('insufficient arguments'); end [Mv,Nd]=size(tc); N = sum(tc,1)'; TT = T*T'; %TT = diag(ones(Mv,1)); % jvd: debug: should result in ||x-y||_2^2 B = tc' * TT * tc; %A = (N.^-2) .* diag(B - tc'*diag(TT)*h') + N.^-1; % jvd: old way A = (N.^-2) .* (diag(B) - tc'*diag(TT)) + N.^-1; % jvd: lce06 errata -1 not -2 %ED2 = A*h' + h*A' - 2 * diag(N.^-1) * B * diag(N.^-1); % jvd: old way ED2 = repmat(A,1,Nd) + repmat(A',Nd,1) - 2 * diag(N.^-1) * B * diag(N.^-1);