113 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Matlab
		
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Matlab
		
	
	
| %-----------------------------------------------------------------------
 | |
| % equals
 | |
| fg = createLinearFactorGraph();
 | |
| fg2 = createLinearFactorGraph();
 | |
| CHECK('equals',fg.equals(fg2));
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % error
 | |
| cfg = createZeroDelta();
 | |
| actual = fg.error(cfg);
 | |
| DOUBLES_EQUAL( 5.625, actual, 1e-9 );
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % combine_factors_x1
 | |
| fg = createLinearFactorGraph();
 | |
| actual = fg.combine_factors('x1');
 | |
| Al1 = [
 | |
|    0., 0.
 | |
|    0., 0.
 | |
|    0., 0.
 | |
|    0., 0.
 | |
|    5., 0.
 | |
|    0., 5.
 | |
|   ];
 | |
|                      
 | |
| Ax1 = [
 | |
|   10.,   0.
 | |
|   0.00, 10.
 | |
|   -10.,  0.
 | |
|   0.00,-10.
 | |
|   -5.,   0.
 | |
|   00.,  -5.
 | |
|   ];
 | |
| 
 | |
| Ax2 = [
 | |
|    0., 0.
 | |
|    0., 0.
 | |
|    10., 0.
 | |
|    +0.,10.
 | |
|    0., 0.
 | |
|    0., 0.
 | |
|   ];
 | |
| 
 | |
| b=[-1;-1;2;-1;0;1];
 | |
| 
 | |
| expected = LinearFactor('l1',Al1,'x1',Ax1,'x2',Ax2,b);
 | |
| CHECK('combine_factors_x1', actual.equals(expected,1e-9));
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % combine_factors_x2
 | |
| fg = createLinearFactorGraph();
 | |
| actual = fg.combine_factors('x2');
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % eliminate_x1
 | |
| fg = createLinearFactorGraph();
 | |
| actual = fg.eliminate_one('x1');
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % eliminate_x2
 | |
| fg = createLinearFactorGraph();
 | |
| actual = fg.eliminate_one('x2');
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % eliminateAll
 | |
| 
 | |
| R1 = [10, 0.0
 | |
|     0.0, 10];
 | |
| d1=[-1;-1];
 | |
| cg1 = ConditionalGaussian(d1, R1);
 | |
| 
 | |
| R2 = [6.7082, 0.0
 | |
|     0.0, 6.7082];
 | |
| A1= [ -6.7082, 0.0
 | |
|     0.0, -6.7082];
 | |
| d2=[0;1.34164];
 | |
| cg2 = ConditionalGaussian(d2, R2, 'x1', A1);
 | |
| 
 | |
| R3 = [11.1803, 0.0
 | |
|     0.0, 11.1803];
 | |
| A21 = [ -2.23607, 0.0
 | |
|     0.0, -2.23607];
 | |
| A22 = [-8.94427, 0.0
 | |
|     0.0, -8.94427];
 | |
| d3 =[2.23607; -1.56525];
 | |
| cg3 = ConditionalGaussian(d3, R3, 'l1', A21, 'x1', A22);
 | |
| 
 | |
| expected = ChordalBayesNet;
 | |
| expected.insert('x1', cg1);
 | |
| expected.insert('l1', cg2);
 | |
| expected.insert('x2', cg3);
 | |
| 
 | |
| % Check one ordering
 | |
| fg1 = createLinearFactorGraph();
 | |
| ord1 = Ordering;
 | |
| ord1.push_back('x2');
 | |
| ord1.push_back('l1');
 | |
| ord1.push_back('x1');
 | |
| actual1 = fg1.eliminate(ord1);
 | |
| CHECK('eliminateAll', actual1.equals(expected));
 | |
| 
 | |
| %-----------------------------------------------------------------------
 | |
| % matrix
 | |
| 
 | |
| fg = createLinearFactorGraph();
 | |
| ord = Ordering;
 | |
| ord.push_back('x2');
 | |
| ord.push_back('l1');
 | |
| ord.push_back('x1');
 | |
| 
 | |
| A = fg.matrix(ord);
 | |
| 
 |