about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/BNT/potentials/@scgcpot/reduce_pot.m
blob: 466a7a72b8b0373a1e07131d41989c9e4bc74b2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function [reduced_pot,successful] = reduce(pot,tailnodes)
% Executes the reduce operation defined in 
% Stable Local Computation with Conditional Gaussian Distributions
% Steffen L. Lauritzen
% Frank Jensen
% September 1999
% The potential pot is reduced if B contains any zero columns 
% The test are restricted to the positions in tailnodes.
% Any columns successfully deleted are entered in the array successful

if nargin < 2
    tailnodes = 1:pot.ctailsize;
end

successful = [];

% Look for all columns beeing equal to zero
for i = tailnodes
    if ~any(pot.B(:,i))
        successful = [successful i]; 
    end
end

remain = mysetdiff(1:pot.ctailsize,successful);

% Erase the zero-columns and decrease the tailsize
pot.B = pot.B(:,remain);
pot.ctailsize = pot.ctailsize - length(successful);

% Return the reduced potential
reduced_pot = pot;