function jtree = onemsgpass( x, y, jtree, ns ) clqs = jtree{1}; seps = jtree{2}; S = get_sset( seps, x, y ); m = msgpass( clqs{x}.pot, S.pot, clqs{y}.pot, ns ); xpot = m{1}; rpot = m{2}; ypot = m{3}; % add them back into jtree clqs{x} = clqs{x}; clqs{x}.pot = xpot; seps{S.id} = S; seps{S.id}.pot = rpot; clqs{y} = clqs{y}; clqs{y}.pot = ypot; %disp(sprintf('message passed from X:%d to Y:%d (via R:%d)',... %x,y,S.id)); jtree{1} = clqs; jtree{2} = seps; jtree{3} = jtree{3};