Remove a level of indirection when using CellInfo The CellInfo struct contains a mutex, which interacts poorly with some standard library containers which may move things around. As a result we were using std::unique_ptr<CellInfo> in these containers, but this change gets rid of that level of indirection as std::unordered_map can construct CellInfo in place and we can replace the use of std::vector with an array we know will not be resized. This improves the performance of the schur eliminator a bit but also the performance of the block diagonal preconditioners. Change-Id: If3ccd1273a754d9c5112e6e611ce31066b6b27b5
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.