Improve performance of SPARSE_NORMAL_CHOLESKY + dynamic_sparsity

The outer product computation logic in SparseNormalCholeskySolver
does not work well with dynamic sparsity. The overhead of computing
the sparsity pattern of the normal equations is only amortized if
the sparsity is constant. If the sparsity can change from call to call
SparseNormalCholeskySolver will actually be more expensive.

For Eigen and for CXSparse we now explicitly compute the normal
equations using their respective matrix-matrix product routines and solve.
Change-Id: Ifbd8ed78987cdf71640e66ed69500442526a23d4
This commit is contained in:
Sameer Agarwal
2015-08-26 09:24:33 -07:00
parent d0b6cf657d
commit 5742b7d0f1
3 changed files with 97 additions and 51 deletions
+4 -1
View File
@@ -20,7 +20,10 @@ New Features
can be constructed as a cartesian product of other local
parameterization.
#. Add DynamicCostFunctionToFunctor. (David Gossow)
#. Optionally export Ceres build directory into local CMake package registry.
#. Optionally export Ceres build directory into local CMake package
registry.
#. Faster ``SPARSE_NORMAL_CHOLESKY`` in the presence of dynamic
sparsity.
Bug Fixes & Minor Changes
-------------------------