www.pudn.com > gmm_utilities.zip > kernel_multiply.m
function gr = kernel_multiply(g1,g2)
D = size(g1.x, 1);
M = size(g1.x, 2);
N = size(g2.x, 2);
R = M*N;
gr.x = zeros(D,R);
gr.w = zeros(1,R);
k=1;
for i=1:M
xi = repcol(g1.x(:,i), N);
wi = repcol(g1.w(i), N);
[x, gr.P, w] = gauss_multiply(xi, g1.P, g2.x, g2.P);
ii = k:(k+N-1);
gr.x(:,ii) = x;
gr.w(ii) = w*wi*g2.w;
k = ii(end) + 1;
end