mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-30 00:50:37 +08:00
195e49351b
- Breaking change: Problem::Options::enable_fast_parameter_block_removal is now Problem::Options::enable_fast_removal, as it now controls the behaviour for both parameter and residual blocks. - Previously we did not check that the specified residual block to remove in RemoveResidualBlock actually represented a valid residual for the problem. - This meant that Ceres would die unexpectedly if the user passed an uninitialised residual_block, or more likely attempted to remove a residual block that had already been removed automatically after the user removed a parameter block upon on which it was dependent. - RemoveResidualBlock now verifies the validity of the given residual_block to remove. Either by checking against a hash set of all residuals maintained in ProblemImpl iff enable_fast_removal is enabled. Or by a full scan of the residual blocks if not. Change-Id: I9ab178e2f68a74135f0a8e20905b16405c77a62b