42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
| /**
 | |
|  * @file    VectorConfig.h
 | |
|  * @brief   Factor Graph Configuration
 | |
|  * @author Frank Dellaert
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| /*
 | |
|  * There are two interchangeable implementations of VectorConfig.
 | |
|  *
 | |
|  * VectorMap uses a straightforward stl::map of Vectors. It has O(log n)
 | |
|  * insert and access, and is fairly fast at both. However, it has high overhead
 | |
|  * for arithmetic operations such as +, scale, axpy etc...
 | |
|  *
 | |
|  * VectorBTree uses a functional BTree as a way to access SubVectors
 | |
|  * in an ordinary Vector. Inserting is O(n) and much slower, but accessing,
 | |
|  * is O(log n) and might be a bit slower than VectorMap. Arithmetic operations
 | |
|  * are blindingly fast, however. The cost is it is not as KISS as VectorMap.
 | |
|  *
 | |
|  * Access to vectors is now exclusively via operator[]
 | |
|  * Vector access in VectorMap is via a Vector reference
 | |
|  * Vector access in VectorBtree is via the SubVector type (see Vector.h)
 | |
|  *
 | |
|  * Feb 16 2010: FD: I made VectorMap the default, because I decided to try
 | |
|  * and speed up conjugate gradients by using Sparse FactorGraphs all the way.
 | |
|  */
 | |
| 
 | |
| // we use define and not typedefs as typdefs cannot be forward declared
 | |
| #ifdef VECTORBTREE
 | |
| 
 | |
| #include "VectorBTree.h"
 | |
| #define VectorConfig VectorBTree
 | |
| 
 | |
| #else
 | |
| 
 | |
| #include "VectorMap.h"
 | |
| #define VectorConfig VectorMap
 | |
| 
 | |
| #endif
 | |
| 
 |