Home | History | Annotate | Download | only in ceres

Lines Matching refs:bracket_low

343   // Important: The high/low in bracket_high & bracket_low refer to their
345 // bracket_low.x < bracket_high.x.
346 FunctionSample solution, bracket_low, bracket_high;
362 &bracket_low,
383 summary->optimal_step_size = bracket_low.x;
389 << "Starting line search zoom phase with bracket_low: "
390 << bracket_low << ", bracket_high: " << bracket_high
391 << ", bracket width: " << fabs(bracket_low.x - bracket_high.x)
393 << fabs(bracket_low.value - bracket_high.value);
400 // defined by bracket_low & bracket_high, which satisfy:
402 // 1. The interval bounded by step sizes: bracket_low.x & bracket_high.x
404 // 2. bracket_low.x is of all the step sizes evaluated *which satisifed the
406 // smallest function value, i.e. bracket_low.value <
409 // bracket_low.value < bracket_high.value (although this is typical)
410 // e.g. when bracket_low = initial_position, and bracket_high is the
413 // 3. bracket_high is chosen after bracket_low, s.t.
414 // bracket_low.gradient * (bracket_high.x - bracket_low.x) < 0.
416 bracket_low,
430 solution.value_is_valid && solution.value <= bracket_low.value
431 ? solution : bracket_low;
456 FunctionSample* bracket_low,
470 *bracket_low = initial_position;
502 *bracket_low = previous;
517 *bracket_low = current;
534 *bracket_low = current;
547 // and set bracket_low to the size size amongst all those tested which
559 *bracket_low = current;
572 // Ensure that bracket_low is always set to the step size amongst all
575 *bracket_low =
576 current.value_is_valid && current.value < bracket_low->value
577 ? current : *bracket_low;
629 fabs(bracket_high->x - bracket_low->x) * descent_direction_max_norm
642 FunctionSample bracket_low,
648 CHECK(bracket_low.value_is_valid && bracket_low.gradient_is_valid)
652 << ", bracket_low: " << bracket_low
655 // for a valid bracket is only dependent upon bracket_low.gradient, and
661 // We also do not require that: bracket_low.value < bracket_high.value,
663 // bracket_low = initial_position, bracket_high is the first sample,
670 << ", bracket_low: " << bracket_low
673 if (bracket_low.gradient * (bracket_high.x - bracket_low.x) >= 0) {
676 // 3. bracket_high is chosen after bracket_low, s.t.
677 // bracket_low.gradient * (bracket_high.x - bracket_low.x) < 0.
685 "which does not satisfy: bracket_low.gradient * "
686 "(bracket_high.x - bracket_low.x) < 0 [%.8e !< 0] "
687 "with initial_position: %s, bracket_low: %s, bracket_high:"
690 bracket_low.gradient * (bracket_high.x - bracket_low.x),
692 bracket_low.ToDebugString().c_str(),
704 // Set solution to bracket_low, as it is our best step size (smallest f())
707 *solution = bracket_low;
718 if (fabs(bracket_high.x - bracket_low.x) * descent_direction_max_norm
725 fabs(bracket_high.x - bracket_low.x),
735 bracket_low.x < bracket_high.x ? bracket_low : bracket_high;
737 bracket_low.x < bracket_high.x ? bracket_high : bracket_low;
777 solution->x, bracket_low.x, bracket_high.x);
784 << ", bracket_low: " << bracket_low
792 (solution->value >= bracket_low.value)) {
809 } else if (solution->gradient * (bracket_high.x - bracket_low.x) >= 0) {
810 bracket_high = bracket_low;
813 bracket_low = *solution;