pub struct WarmStartOptions {
pub bound_push: Number,
pub bound_frac: Number,
pub slack_bound_push: Number,
pub slack_bound_frac: Number,
pub mult_bound_push: Number,
pub mult_init_max: Number,
pub target_mu: Number,
pub bound_mult_init_val: Number,
pub constr_mult_init_max: Number,
pub recentering: WarmStartRecentering,
}Expand description
Knobs read off OptionsList and baked into
WarmStartIterateInitializer. Defaults mirror
IpWarmStartIterateInitializer.cpp:RegisterOptions.
Wired today: every knob above plus the gh#606 recentering pair.
warm_start_entire_iterate / warm_start_same_structure are
deliberately not here — they name the GetWarmStartIterate TNLP
surface pounce does not expose, and are refused by
crate::unimplemented_options rather than parsed into a field
nothing reads (gh#606).
Fields§
§bound_push: Number§bound_frac: Number§slack_bound_push: Number§slack_bound_frac: Number§mult_bound_push: Number§mult_init_max: Number§target_mu: Number§bound_mult_init_val: NumberThe value a NaN-seeded bound multiplier takes: NaN in a
user-supplied z/v seed means “unseeded, use the default”.
Threaded from builder.init.bound_mult_init_val at build time
so the Mehrotra override and any user setting stay the single
source of truth.
constr_mult_init_max: Numberconstr_mult_init_max, threaded from the init options at build
time (gh#606). The warm path’s reconstruction of an unseeded
equality-multiplier block runs the cold path’s least-squares
solve, so it is capped by the cold path’s cap — not by
warm_start_mult_init_max, which caps multipliers a caller
actually supplied and is three orders looser (1e6 vs 1e3).
Measured: on redundant_rows, whose duplicated equality rows
make the least-squares system singular, the looser cap let an
arbitrary estimate through and cost 7 -> 25 iterations.
recentering: WarmStartRecenteringwarm_start_recentering (gh#606). Whether the initializer
measures the supplied point and adapts μ / the multiplier fills
to it, or keeps the pre-gh#606 universal constants.
Trait Implementations§
Source§impl Clone for WarmStartOptions
impl Clone for WarmStartOptions
Source§fn clone(&self) -> WarmStartOptions
fn clone(&self) -> WarmStartOptions
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 WarmStartOptions
impl Debug for WarmStartOptions
Auto Trait Implementations§
impl Freeze for WarmStartOptions
impl RefUnwindSafe for WarmStartOptions
impl Send for WarmStartOptions
impl Sync for WarmStartOptions
impl Unpin for WarmStartOptions
impl UnsafeUnpin for WarmStartOptions
impl UnwindSafe for WarmStartOptions
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