commit | 1182fc288477ba087426dd9c778ff39875e49ffe | [log] [tgz] |
---|---|---|
author | Sameer Agarwal <sameeragarwal@google.com> | Tue Jun 20 09:09:05 2017 -0700 |
committer | Sameer Agarwal <sameeragarwal@google.com> | Tue Jun 20 09:13:02 2017 -0700 |
tree | 645a8fc51403797340c3f95640a394a1ce6f8ab6 | |
parent | ef3194472630793497df372fc9c964aca2b87733 [diff] |
SPARSE_SCHUR + CX_SPARSE = Faster There was a bug in the trust region preprocessor where no fill reducing ordering was computed for the case of SPARSE_SCHUR + CX_SPARSE but this was not signaled to SchurComplementSolver, so it was using a naive/natural ordering. To fix this two changes are made: 1. TrustRegionProcessor's logic for signaling the ordering to the linear solver has been re-worked. The surrounding code has also been re-organized for better readability. 2. In SchurComplementSolver::SolveReducedSystem the row and column block structure has been added to the CompressedRowSparseMatrix containing the Schur complement so that block AMD can be used. As a result of these changes the linear solve time for problem-744-543562-pre.txt has been brought down from 58 seconds to 35 seconds. Change-Id: I4d82efce05175260f97b1f925f8a1b4a9d650cae
Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Ceres Solver can solve two kinds of problems.
Please see ceres-solver.org for more information.
Ceres development happens on Gerrit, including both repository hosting and code reviews. The GitHub Repository is a continuously updated mirror which is primarily meant for issue tracking. Please see our Contributing to Ceres Guide for more details.
The upstream Gerrit repository is
https://ceres-solver.googlesource.com/ceres-solver