pub struct DefaultIterateInitializer {
pub bound_push: Number,
pub bound_frac: Number,
pub slack_bound_push: Number,
pub slack_bound_frac: Number,
pub constr_mult_init_max: Number,
pub bound_mult_init_val: Number,
pub bound_mult_init_method: String,
pub eq_mult_calculator: Option<Box<dyn EqMultCalculator>>,
pub least_square_init_primal: bool,
}Fields§
§bound_push: Number§bound_frac: Number§slack_bound_push: Number§slack_bound_frac: Number§constr_mult_init_max: Number§bound_mult_init_val: Number§bound_mult_init_method: String“constant” / “mu-based” / “least-square”.
eq_mult_calculator: Option<Box<dyn EqMultCalculator>>Equality-multiplier calculator used by the
least_square_mults step at the end of set_initial_iterates,
matching upstream IpDefaultIterateInitializer.cpp:334-341. If
None, the LS step is skipped (y_c, y_d remain at zero).
least_square_init_primal: boolleast_square_init_primal — port of
IpDefaultIterateInitializer.cpp:200-222. When on, the
initializer replaces the user’s starting x with the min-norm
solution of the linearized equality + inequality constraints,
then pushes that to the interior. Used by the Mehrotra cascade
(IpIpoptAlg.cpp:182) to dramatically reduce iter-0 primal
infeasibility on LP-shaped problems.
Implementations§
Trait Implementations§
Source§impl Default for DefaultIterateInitializer
impl Default for DefaultIterateInitializer
Source§impl IterateInitializer for DefaultIterateInitializer
impl IterateInitializer for DefaultIterateInitializer
Source§fn set_initial_iterates(
&mut self,
data: &IpoptDataHandle,
cq: &IpoptCqHandle,
nlp: &Rc<RefCell<dyn IpoptNlp>>,
aug_solver: &mut dyn AugSystemSolver,
) -> bool
fn set_initial_iterates( &mut self, data: &IpoptDataHandle, cq: &IpoptCqHandle, nlp: &Rc<RefCell<dyn IpoptNlp>>, aug_solver: &mut dyn AugSystemSolver, ) -> bool
Populate
IpoptData::curr with an initial iterate. Mirrors
IterateInitializer::SetInitialIterates. The implementation
can use aug_solver for least-square multiplier estimates;
callers that don’t need that may pass any solver — concrete
initializers consult it only if their option settings require
it.Auto Trait Implementations§
impl Freeze for DefaultIterateInitializer
impl !RefUnwindSafe for DefaultIterateInitializer
impl !Send for DefaultIterateInitializer
impl !Sync for DefaultIterateInitializer
impl Unpin for DefaultIterateInitializer
impl UnsafeUnpin for DefaultIterateInitializer
impl !UnwindSafe for DefaultIterateInitializer
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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