mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-29 08:34:37 +08:00
Fixes for some line search bugs & corner cases.
- Increase precision of numeric values output in error messages to allow for easier debugging. - Ensure termination after Wolfe search bracketing phase if bracket width has been shrunk to below tolerance. - Cleaned up return value for BracketingPhase(), now false iff optimisation should stop, true otherwise. - Fix bug whereby we would mark a step size as satisfying the Wolfe conditions when it did not due to numerical issues in the cost function. - Adding explanation of a subtlety in which a zoom could still be acceptably invoked with bracket_low.f > bracket_high.f. - Replacing hard check of a pre-condition of ZoomPhase() with a conditional return if not satisfied to address issue whereby a bracket could be incorrectly identified due to inconsistent values & gradients returned from the cost function. - Adding missing check for step size validity in line search minimizer. - Adding ToDebugString() for FunctionSample. Change-Id: Iad98e635749877f80c079ebad126bf022d82232d
This commit is contained in:
committed by
Sameer Agarwal
parent
54fc942367
commit
7124c3474c
@@ -95,6 +95,7 @@ struct FunctionSample {
|
||||
gradient(0.0),
|
||||
gradient_is_valid(false) {
|
||||
}
|
||||
string ToDebugString() const;
|
||||
|
||||
double x;
|
||||
double value; // value = f(x)
|
||||
|
||||
Reference in New Issue
Block a user