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