63 lines
1.6 KiB
Matlab
63 lines
1.6 KiB
Matlab
%-----------------------------------------------------------------------
|
|
% equals
|
|
fg = createGaussianFactorGraph();
|
|
fg2 = createGaussianFactorGraph();
|
|
CHECK('equals',fg.equals(fg2,1e-9));
|
|
|
|
%-----------------------------------------------------------------------
|
|
% error
|
|
zero = createZeroDelta();
|
|
actual = fg.error(zero);
|
|
DOUBLES_EQUAL( 5.625, actual, 1e-9 );
|
|
|
|
%-----------------------------------------------------------------------
|
|
% eliminate_x1
|
|
fg = createGaussianFactorGraph();
|
|
actual = fg.eliminateOne('x1');
|
|
|
|
%-----------------------------------------------------------------------
|
|
% eliminate_x2
|
|
fg = createGaussianFactorGraph();
|
|
actual = fg.eliminateOne('x2');
|
|
|
|
%-----------------------------------------------------------------------
|
|
% eliminateAll
|
|
I = eye(2);
|
|
cg1 = GaussianConditional('x1',[-1;-1], 10*I,[1;1]);
|
|
|
|
sig1=0.149071;
|
|
d2=[0; .2]/sig1;
|
|
cg2 = GaussianConditional('l1', d2, I/sig1, 'x1', -I/sig1, [1;1]);
|
|
|
|
sig2 = 0.0894427;
|
|
A21 = -0.2*I/sig2;
|
|
A22 = -0.8*I/sig2;
|
|
d3 =[.2; -.14]/sig2;
|
|
cg3 = GaussianConditional('x2',d3, I/sig2, 'l1', A21, 'x1', A22, [1;1]);
|
|
|
|
expected = GaussianBayesNet;
|
|
expected.push_back(cg3);
|
|
expected.push_back(cg2);
|
|
expected.push_back(cg1);
|
|
|
|
% Check one ordering
|
|
fg1 = createGaussianFactorGraph();
|
|
ord1 = Ordering;
|
|
ord1.push_back('x2');
|
|
ord1.push_back('l1');
|
|
ord1.push_back('x1');
|
|
actual1 = fg1.eliminate_(ord1);
|
|
CHECK('eliminateAll', actual1.equals(expected,1e-5));
|
|
|
|
%-----------------------------------------------------------------------
|
|
% matrix
|
|
|
|
fg = createGaussianFactorGraph();
|
|
ord = Ordering;
|
|
ord.push_back('x1');
|
|
ord.push_back('x2');
|
|
ord.push_back('l1');
|
|
|
|
[H,z] = fg.matrix(ord);
|
|
|