annotate toolboxes/FullBNT-1.0.7/bnt/potentials/@cgpot/Old/normalize_pot.m @ 0:cc4b1211e677 tip

initial commit to HG from Changeset: 646 (e263d8a21543) added further path and more save "camirversion.m"
author Daniel Wolff
date Fri, 19 Aug 2016 13:07:06 +0200
parents
children
rev   line source
Daniel@0 1 function [pot, loglik] = normalize_pot(pot)
Daniel@0 2 % NORMALIZE_POT Convert the CG potential Pr(X,E) into Pr(X|E) and return log Pr(E).
Daniel@0 3 % [pot, loglik] = normalize_pot(pot)
Daniel@0 4
Daniel@0 5 % Marginalize down to [], so that the normalizing constant becomes Pr(E)
Daniel@0 6 temp = marginalize_pot(cg_can_to_mom(pot), []);
Daniel@0 7 %loglik = temp.mom{1}.logp;
Daniel@0 8 [temp2, loglik] = normalize_pot(temp.mom{1});
Daniel@0 9
Daniel@0 10 % Adjust scale factor to reflect the fact that the pot now represents Pr(X | E) instead of Pr(X,E).
Daniel@0 11
Daniel@0 12 scale = -loglik;
Daniel@0 13 if 1
Daniel@0 14 switch pot.subtype
Daniel@0 15 case 'm'
Daniel@0 16 for i=1:pot.dsize
Daniel@0 17 pot.mom{i} = rescale_pot(pot.mom{i}, scale);
Daniel@0 18 end
Daniel@0 19 case 'c'
Daniel@0 20 for i=1:pot.dsize
Daniel@0 21 pot.can{i} = rescale_pot(pot.can{i}, scale);
Daniel@0 22 end
Daniel@0 23 end
Daniel@0 24 end