gtsam
4.0.0
gtsam
|
FastMap is a thin wrapper around std::map that uses the boost fast_pool_allocator instead of the default STL allocator. More...
FastMap is a thin wrapper around std::map that uses the boost fast_pool_allocator instead of the default STL allocator.
Disjoint Set Forest class.
Binary tree.
This class stores a dense matrix and allows it to be accessed as a collection of vertical blocks.
A testable concept check that should be placed in applicable unit tests and in generic algorithms.
This class stores a dense matrix and allows it to be accessed as a collection of blocks.
FastVector is a type alias to a std::vector with a custom memory allocator.
FastSet is a thin wrapper around std::set that uses the boost fast_pool_allocator instead of the default STL allocator.
FastList is a thin wrapper around std::list that uses the boost fast_pool_allocator instead of the default STL allocator.
DSFVector additionally keeps a vector of keys to support more expensive operations.
A fast implementation of disjoint set forests that uses vector as underly data structure.
Disjoint set forest using an STL map data structure underneath Uses rank compression and union by rank, iterator version.
This is just a convenience to avoid having lengthy types in the code. Through timing, we've seen that the fast_pool_allocator can lead to speedups of several percent.
This is the absolute minimal DSF data structure, and only allows size_t keys Uses rank compression but not union by rank :-(
This is just a convenience to avoid having lengthy types in the code. Through timing, we've seen that the fast_pool_allocator can lead to speedups of several %.
The particular allocator depends on GTSAM's cmake configuration.
When constructed, the caller must provide the dimensions of the blocks.
The block structure is symmetric, but the underlying matrix does not necessarily need to be.
This class also has a parameter that can be changed after construction to change the apparent matrix view. firstBlock() determines the block that appears to have index 0 for all operations (except re-setting firstBlock()).
See macros for details on using this structure
T | is the objectype this constrains to be testable - assumes print() and equals() |
The dimensions of the blocks are provided when constructing this class.
This class also has three parameters that can be changed after construction that change the apparent view of the matrix without any reallocation or data copying. firstBlock() determines the block that has index 0 for all operations (except for re-setting firstBlock()). rowStart() determines the apparent first row of the matrix for all operations (except for setting rowStart() and rowEnd()). rowEnd() determines the apparent exclusive (one-past-the-last) last row for all operations. To include all rows, rowEnd() should be set to the number of rows in the matrix (i.e. one after the last true row index).
Quoting from CLR: A disjoint-set data structure maintains a collection S = {S_1,S_2,...} of disjoint dynamic sets. Each set is identified by a representative, which is some member of the set.