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
 | ||
|  | 
 |