Daniel@0: function [clpot, seppot] = distribute_evidence(engine, clpot, seppot) Daniel@0: % DISTRIBUTE_EVIDENCE Do message passing from root to leaves (parents then children) Daniel@0: % [clpot, seppot] = distribute_evidence(engine, clpot, seppot) Daniel@0: Daniel@0: for n=engine.preorder Daniel@0: for c=engine.preorder_children{n} Daniel@0: clpot{c} = divide_by_pot(clpot{c}, seppot{n,c}); Daniel@0: seppot{n,c} = marginalize_pot(clpot{n}, engine.separator{n,c}, engine.maximize); Daniel@0: clpot{c} = multiply_by_pot(clpot{c}, seppot{n,c}); Daniel@0: end Daniel@0: end