commit | 1635ce726078f00264b89d7fb6e76fd1c2796e59 | [log] [tgz] |
---|---|---|
author | Sameer Agarwal <sameeragarwal@google.com> | Wed Aug 19 00:26:02 2015 -0700 |
committer | Sameer Agarwal <sameeragarwal@google.com> | Wed Aug 19 22:36:51 2015 +0000 |
tree | 2c1ddfe8e395b5f1545e0921a1a942ef84a034aa | |
parent | 4c3f8987e7f0c51fd367cf6d43d7eb879e79589f [diff] |
Fix a bug in the reordering code. When the user provides an ordering which starts at a non-zero group id, or has gaps in the groups, then CAMD, the algorithm used to reorder the program can crash or return garbage results. The solution is to map the ordering into grouping constraints, and then to re-number the groups to be contiguous using a call to MapValuesToContiguousRange. This was already done for CAMD based ordering for Schur type solvers, but was not done for SPARSE_NORMAL_CHOLESKY. Thanks to Bernhard Zeisl for not only reporting the bug but also providing a reproduction. Change-Id: I5cfae222d701dfdb8e1bda7f0b4670a30417aa89
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