Kai Ni
d5c6f62387
massive check in for using spqr_front
2010-07-04 23:50:21 +00:00
Richard Roberts
1c0dcbc438
Added smart=true for the noise model when constructing GaussianFactor from GaussianConditional (and unit test). If a factor with a constrained noise model was eliminated, and then a new factor was constructed from the conditional (this happens in iSAM), the new factor would have an unconstrained noise model with zero sigmas.
2010-05-16 17:08:14 +00:00
Frank Dellaert
5e97d07f5e
*it is already the right type
2010-02-26 04:03:56 +00:00
Frank Dellaert
044ea1348d
Modernized/refactored, esp. with regards to map insert and iterating.
2010-02-26 03:20:15 +00:00
Frank Dellaert
517c82f62f
Small details, like using a reference in FOREACH
2010-02-21 17:06:11 +00:00
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
Alex Cunningham
87cc573d34
Added a new combine process for GaussianFactors that allocates only one matrix when combining, rather than using append factor to make a large number of smaller matrices. There is a flag to switch between these modes, which currently defaults to the older approach. Currently, there does not appear to be a performance improvement, however.
2010-01-31 17:49:33 +00:00
Frank Dellaert
5e4b23df59
Matrix::multiplyAdd and transposeMultiplyAdd are "level 2" BLAS and speed up the numeric part of the code substantially. Alex might be able to speed them up even more by making them use real BLAS code within Matrix.cpp.
2010-01-31 16:04:24 +00:00
Frank Dellaert
ac870bce4c
GaussianFactor::transposeMultiplyAdd
2010-01-31 03:33:53 +00:00
Alex Cunningham
59c7ce7e29
Integrated householder-based QR into NoiseModel. Note that the examples for GFG have changed to ensure that they are actually a linearized version of the nonlinear example.
2010-01-27 04:39:35 +00:00
Frank Dellaert
351cdd18c2
case change: SharedGaussian and SharedDiagonal are now classes with their own header file. Needed for MATLAB TORO hail Mary
2010-01-22 17:36:57 +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
Alex Cunningham
5f588031bc
Merged NoiseQR back into trunk
2010-01-20 18:32:48 +00:00
Alex Cunningham
8db99db57e
Small performance improvement for matrix_augmented, with accompanying test in timeGaussianFactor
2010-01-20 14:09:44 +00:00
Frank Dellaert
9f4da004c2
got rid of verbose printing
2010-01-19 19:04:18 +00:00
Alex Cunningham
fb0ca07bf1
Added and tested whitening parameter for matrix() and matrix_augmented()
2010-01-19 16:52:01 +00:00
Frank Dellaert
b01c111a1d
GaussianFactor now uses noiseModel internally - not yet externally
2010-01-19 04:39:28 +00:00
Frank Dellaert
e935f1745e
stop copying matrices...
2010-01-18 21:17:25 +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
Frank Dellaert
46a65d89df
using ediv_ where needed
2009-12-31 10:30:06 +00:00
Frank Dellaert
266fc56dea
Gradient using new operator^ and errors method
2009-12-27 12:13:31 +00:00
Frank Dellaert
7d1428de60
Added Errors class and operator* for GaussianFactor and GaussianFactorGraph. Also moved a few functions to cpp.
2009-12-26 22:48:41 +00:00
Frank Dellaert
c38683cd64
Sped up and fixed (?) sparse
2009-12-12 06:18:29 +00:00
Frank Dellaert
a66f08a5e0
testing new alphaFactor
2009-12-11 18:03:43 +00:00
Frank Dellaert
f91a1f0192
error_vector
2009-12-11 17:42:54 +00:00
Frank Dellaert
726858145a
gradient descent (with fixed nr. of iterations, choosing optimal step size)
2009-12-11 04:59:05 +00:00
Frank Dellaert
e7a912bd3b
Calculate gradient of factor graph objective function.
2009-12-10 20:19:15 +00:00
Alex Cunningham
d7c67532bf
Changed format of Matrix::vector_scale() to switch arguments
2009-12-08 21:10:38 +00:00
Frank Dellaert
2a4e90a283
Re-factored append_factor to use FOREACH_PAIR
2009-12-05 02:00:20 +00:00
Chris Beall
e98081f92c
changes to append_factor which give more than 2x speedup on my data. Matrices in As are no longer copied/edited/replaced each time they need to be changed, but created once and then updated in place.
2009-12-04 21:03:32 +00:00
Frank Dellaert
2178589263
Debug printout and variable names
2009-11-13 06:13:58 +00:00
Alex Cunningham
c7b86cec97
Renamed ConditionalGaussian -> GaussianConditional
2009-11-12 16:41:18 +00:00
Alex Cunningham
77a1754b69
Renamed LinearFactor -> GaussianFactor, LinearFactorGraph -> GaussianFactorGraph
2009-11-12 16:16:32 +00:00