Mercurial > hg > camir-aes2014
comparison toolboxes/FullBNT-1.0.7/bnt/inference/online/@jtree_2TBN_inf_engine/back.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e9a9cd732c1e |
---|---|
1 function b = back(engine, bfuture, f, t) | |
2 | |
3 if f.t ~= t | |
4 error('mixed up time stamps') | |
5 end | |
6 if t==1 | |
7 b = back1(engine, bfuture, f, t); | |
8 return; | |
9 end | |
10 | |
11 bnet = bnet_from_engine(engine); | |
12 ss = bnet.nnodes_per_slice; | |
13 | |
14 int = engine.interface; | |
15 D = engine.in_clq; | |
16 C = engine.out_clq; | |
17 phiD = marginalize_pot(bfuture.clpot{D}, int, engine.maximize); | |
18 phiD = set_domain_pot(phiD, int+ss); % shift to slice 2 | |
19 phiC = marginalize_pot(f.clpot{C}, int+ss, engine.maximize); | |
20 ratio = divide_by_pot(phiD, phiC); | |
21 f.clpot{C} = multiply_by_pot(f.clpot{C}, ratio); | |
22 | |
23 [b.clpot, seppot] = distribute_evidence(engine.jtree_engine, f.clpot, f.seppot); | |
24 for c=1:length(b.clpot) | |
25 [b.clpot{c}, ll(c)] = normalize_pot(b.clpot{c}); | |
26 end | |
27 b.t = t; |