Commit Graph

21 Commits (3247751b5db8193b5fbd924b66b1e48325db7e7c)

Author SHA1 Message Date
Frank Dellaert 3247751b5d Major check-in: there are now 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.
2010-02-17 03:29:12 +00:00
Frank Dellaert fa6a515bfd SAM was substantially sped up by inlining VectorConfig::insert 2010-01-31 16:05:16 +00:00
Frank Dellaert 881d739371 BLAS level 1 style "scal" saves even more time in PCG 2010-01-30 04:01:49 +00:00
Frank Dellaert 4913326c22 BLAS level 1 style axpy calls in Vector and VectorConfig shave some seconds off PCG 2010-01-30 02:04:37 +00:00
Richard Roberts 5367e5a157 All std::map<Symbol,T> are now SymbolMap<T>, which is just a thin wrapper around std::map. at(Key) is used instead of first checking with find when an exception should be thrown for non-existent keys. This does not change any behavior or timing currently. This check-in also includes some functions in BayesTree for gathering clique statistics. 2010-01-22 04:41:40 +00:00
Michael Kaess f8ef284b30 fixed bearing/range, large speedup for batch; incremental creation of Config works 2010-01-18 20:17:31 +00:00
Richard Roberts aef0b42562 Refactoring to use a new Symbol key instead of strings in Bayes*, Gaussian*, Ordering, Symbolic*, VectorConfig. Renamed existing type-checking key Symbol<C,T> to TypedSymbol<C,T> 2010-01-17 19:34:57 +00:00
Kai Ni f5a6a10feb debug hard constraint and make pose2prior work 2010-01-16 05:08:29 +00:00
Kai Ni 40889e8f50 added an absolution threshold $epsilon_abs$ to conjugateGradients. added utility functions to several class to have the same interface which can be used by template functions 2010-01-11 08:32:59 +00:00
Richard Roberts 19a3e228d7 Large refactoring - made several Lie group functions global, which used to be member functions, to treat Lie groups more uniformly. Also created Lie.h, and a preprocessor flag in numericalDerivative to change the coordinate frame derivatives are reported in. gtsam and easylib build and pass unit tests, but this will probably break other projects, which will require a few small changes to work again. Email coming in a few minutes to describe the changes. 2010-01-08 00:40:17 +00:00
Frank Dellaert 2368f3605a getReference 2009-12-30 14:53:40 +00:00
Frank Dellaert 674ae9d030 steepest descent now all implemented in iterative.h/cpp 2009-12-28 12:37:34 +00:00
Frank Dellaert 1fac98b4cb Errors:dot, VectorConfig::operator*/-, as a result Conjugate Gradient Descent template now works for factor graphs 2009-12-28 08:15:09 +00:00
Frank Dellaert 266fc56dea Gradient using new operator^ and errors method 2009-12-27 12:13:31 +00:00
Frank Dellaert a1e90af90f exmap that takes Vector 2009-12-11 22:43:34 +00:00
Frank Dellaert 137291b2c9 Vector-like operators 2009-12-11 21:38:08 +00:00
Frank Dellaert 299fcf1e04 scale is const ! 2009-12-11 04:57:31 +00:00
Frank Dellaert 67e1897e47 Get and [] now return references, new imperative add method 2009-12-10 20:17:11 +00:00
Alex Cunningham acfe742c29 Added a simple scaling function for VectorConfigs 2009-11-20 05:10:55 +00:00
Frank Dellaert 9a579fcdaf No need for Testable constructors 2009-10-22 14:42:19 +00:00
Alex Cunningham 7d0a30c20f Renamed FGConfig to VectorConfig in gtsam, easylib, EasySLAM, and mast. 2009-10-14 20:39:59 +00:00