PROBLEMS WITH STAB_COND_GAUSS_INF_ENGINE


- enter_evidence always returns ll=0
  (I set ll=0 since it is not computed)

- fails on scg_3node, probably because the engine needs to be
re-initialized every time before enter_evidence is called, not just
when the engine is constructed.

??? Error using ==> assert
assertion violated: 

K>> dbstack
dbstack
> In /home/eecs/murphyk/matlab/BNT/HMM/assert.m at line 9
  In /home/eecs/murphyk/matlab/BNT/examples/static/SCG/scg_3node.m at line 45



- crashes on scg3

Error in ==> /home/eecs/murphyk/matlab/BNT/inference/static/@stab_cond_gauss_inf_engine/stab_cond_gauss_inf_engine.m
On line 77  ==>       clpot{cindex} = direct_combine_pots(pot{n}, clpot{cindex});

K>> dbstack
dbstack
> In /home/eecs/murphyk/matlab/BNT/inference/static/@stab_cond_gauss_inf_engine/stab_cond_gauss_inf_engine.m at line 77
  In /home/eecs/murphyk/matlab/BNT/examples/static/SCG/scg3.m at line 41
K>> 





- fails on scg1 and scg2

Warning: One or more output arguments not assigned during call to 'min_subtree_conti_nodes (nearsest_node2)'.
Warning in ==> /home/eecs/murphyk/matlab/BNT/graph/min_subtree_conti_nodes.m (nearsest_node2)
On line 60  ==>     nea_node = nearsest_node2(tree, nodes, n);

K>> dbstack
dbstack
> In /home/eecs/murphyk/matlab/BNT/graph/min_subtree_conti_nodes.m (nearsest_node2) at line 60
  In /home/eecs/murphyk/matlab/BNT/graph/min_subtree_conti_nodes.m (nearest_node) at line 50
  In /home/eecs/murphyk/matlab/BNT/graph/min_subtree_conti_nodes.m at line 11
  In /home/eecs/murphyk/matlab/BNT/inference/static/@stab_cond_gauss_inf_engine/marginal_difclq_nodes.m at line 17
  In /home/eecs/murphyk/matlab/BNT/inference/static/@stab_cond_gauss_inf_engine/marginal_nodes.m at line 23
  In /home/eecs/murphyk/matlab/BNT/examples/static/SCG/scg1.m at line 42





- This code fragment, from BNT/graph/min_subtree_conti_nodes, is clearly redundant

function nea_node = nearest_node(tree, root, nodes)
%get the nearest node to the root in the tree
nea_node = nearsest_node2(tree, nodes, root);

function nea_node = nearsest_node2(tree, nodes, inode)
if myismember(inode, nodes)
    nea_node = inode;
    return;
end
cs = children(tree, inode);
for i = 1:length(cs)
    n = cs(i);
    nea_node = nearsest_node2(tree, nodes, n);
end
    

- Some names are badly chosen. 'nearsest' is a mis-spelling. 'min_subtree_conti_nodes' should be
'min_subtree_containing_nodes' or 'min_subtree_con_nodes'.

- In general, the code needs some heavy polishing.
