pub struct LineSearchOptions {
pub watchdog_shortened_iter_trigger: Index,
pub watchdog_trial_iter_max: Index,
pub soft_resto_pderror_reduction_factor: Number,
pub max_soft_resto_iters: Index,
pub accept_every_trial_step: bool,
pub alpha_for_y: AlphaForY,
}Expand description
Knobs baked into the assembled BacktrackingLineSearch. Defaults
mirror IpBacktrackingLineSearch.cpp:RegisterOptions.
Fields§
§watchdog_shortened_iter_trigger: Index§watchdog_trial_iter_max: Index§soft_resto_pderror_reduction_factor: Numbersoft_resto_pderror_reduction_factor — required relative
reduction in the primal-dual error for a soft-resto step.
0 disables the soft restoration phase.
max_soft_resto_iters: Indexmax_soft_resto_iters — cap on consecutive soft-resto
iterations before full restoration is forced.
accept_every_trial_step: boolaccept_every_trial_step — short-circuits the filter / alpha
loop and accepts the full fraction-to-the-boundary step every
outer iteration. Mirrors upstream’s
IpBacktrackingLineSearch::accept_every_trial_step_. Drops
global convergence guarantees; only safe for problems where the
Newton step is already a descent step (LPs, convex QPs). The
Mehrotra cascade in application.rs flips this on.
alpha_for_y: AlphaForYalpha_for_y — policy for the equality-multiplier (y_c / y_d)
step length. Upstream default is Primal; the Mehrotra cascade
switches to BoundMult.
Trait Implementations§
Source§impl Clone for LineSearchOptions
impl Clone for LineSearchOptions
Source§fn clone(&self) -> LineSearchOptions
fn clone(&self) -> LineSearchOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LineSearchOptions
impl Debug for LineSearchOptions
Auto Trait Implementations§
impl Freeze for LineSearchOptions
impl RefUnwindSafe for LineSearchOptions
impl Send for LineSearchOptions
impl Sync for LineSearchOptions
impl Unpin for LineSearchOptions
impl UnsafeUnpin for LineSearchOptions
impl UnwindSafe for LineSearchOptions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more