Binary tree. More...
Binary tree.
FastMap is a thin wrapper around std::map that uses the boost fast_pool_allocator instead of the default STL allocator. 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.
Disjoint set forest using an STL map data structure underneath Uses rank compression and union by rank, iterator version
A fast implementation of disjoint set forests that uses vector as underly data structure. This is the absolute minimal DSF data structure, and only allows size_t keys Uses rank compression but not union by rank :-(
DSFVector additionally keeps a vector of keys to support more expensive operations
FastList is a thin wrapper around std::list that uses the boost fast_pool_allocator instead of the default STL allocator. 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.
FastSet is a thin wrapper around std::set that uses the boost fast_pool_allocator instead of the default STL allocator. 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 %.
FastVector is a type alias to a std::vector with a custom memory allocator. The particular allocator depends on GTSAM's cmake configuration.
This class stores a dense matrix and allows it to be accessed as a collection of blocks. 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()).
A testable concept check that should be placed in applicable unit tests and in generic algorithms.
See macros for details on using this structure
T | is the objectype this constrains to be testable - assumes print() and equals() |
This class stores a dense matrix and allows it to be accessed as a collection of vertical blocks. 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).
Disjoint Set Forest class
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.