pub struct IpoptData {Show 22 fields
pub curr: Option<IteratesVector>,
pub trial: Option<IteratesVector>,
pub delta: Option<IteratesVector>,
pub delta_aff: Option<IteratesVector>,
pub delta_cen: Option<IteratesVector>,
pub w: Option<Rc<dyn SymMatrix>>,
pub iter_count: Index,
pub curr_mu: Number,
pub curr_tau: Number,
pub tol: Number,
pub perturbations: PdPerturbations,
pub info_alpha_primal: Number,
pub info_alpha_dual: Number,
pub info_regu_x: Number,
pub info_skip_output: bool,
pub info_string: String,
pub tiny_step_flag: bool,
pub info_alpha_primal_char: char,
pub info_ls_count: Index,
pub info_last_output: Number,
pub info_iters_since_header: Index,
pub timing: Rc<TimingStatistics>,
}Expand description
Mutable state passed down through the algorithm. Owned by
IpoptAlgorithm; strategies access via Rc<RefCell<IpoptData>>.
Fields§
§curr: Option<IteratesVector>§trial: Option<IteratesVector>§delta: Option<IteratesVector>§delta_aff: Option<IteratesVector>§delta_cen: Option<IteratesVector>Pure centering step — solution of the primal-dual system with
RHS (0, 0, 0, 0, μ̄·1, μ̄·1, μ̄·1, μ̄·1) (where μ̄ = avrg_compl)
per upstream IpQualityFunctionMuOracle.cpp:227-247. Used by
the quality-function oracle to assemble σ-step trial points
without re-factorising for each candidate σ.
w: Option<Rc<dyn SymMatrix>>Hessian of the Lagrangian for the current iterate. Set by
HessianUpdater (exact or quasi-Newton). Mirrors IpIpoptData::W_.
iter_count: Index§curr_mu: Number§curr_tau: Number§tol: Number§perturbations: PdPerturbations§info_alpha_primal: NumberSet after a successful trial-acceptance step in the line search. Cleared on accept.
info_alpha_dual: Number§info_regu_x: NumberMirrors IpIpoptData::info_regu_x_.
info_skip_output: boolMirrors IpIpoptData::info_skip_output_.
info_string: StringMirrors IpIpoptData::info_string_. Free-form text the
iteration output appends to its line.
tiny_step_flag: boolMirrors IpIpoptData::tiny_step_flag_. Set by the line search
when an alpha→0 trial is detected; the main loop reads it on
the next pass to decide between “tiny step accept” and bail.
info_alpha_primal_char: charOne-char marker the iteration output puts in front of
alpha_primal (e.g. 'f' for filter, 'r' for restoration,
'h' for the very first iterate). Mirrors
IpIpoptData::info_alpha_primal_char_.
info_ls_count: IndexNumber of trial points evaluated in the most recent line
search. Mirrors IpIpoptData::info_ls_count_.
info_last_output: NumberThe wall-clock at the last OrigIterationOutput::WriteOutput
pass. Phase 7 uses this to decide whether to re-print the
header. Mirrors IpIpoptData::info_last_output_.
info_iters_since_header: IndexIterations since the iteration header was last printed. Phase
7 reprints every print_frequency_iter lines. Mirrors
IpIpoptData::info_iters_since_header_.
timing: Rc<TimingStatistics>Shared per-subsystem timing accumulator. Mirrors upstream’s
IpoptData::TimingStats_. IpoptApplication constructs a single
instance per solve and shares it (via Rc) with the algorithm,
NLP, and KKT solver so each can record its own contribution.
Defaults to a fresh empty instance for the structural unit tests
that don’t go through IpoptApplication.
Implementations§
Source§impl IpoptData
impl IpoptData
pub fn new() -> Self
Sourcepub fn append_info_string(&mut self, s: &str)
pub fn append_info_string(&mut self, s: &str)
Append text to info_string. Mirrors IpIpoptData::Append_info_string.
Sourcepub fn reset_info(&mut self)
pub fn reset_info(&mut self)
Reset per-iteration info fields. Mirrors the top of
IpoptAlgorithm::Optimize’s loop body.
Sourcepub fn accept_trial_point(&mut self)
pub fn accept_trial_point(&mut self)
Replace curr with the previously-set trial. Mirrors
IpIpoptData::AcceptTrialPoint.
Sourcepub fn set_trial(&mut self, trial: IteratesVector)
pub fn set_trial(&mut self, trial: IteratesVector)
Set the trial iterate from a primal step delta_x/delta_s
scaled by alpha_p and a dual step scaled by alpha_d.
Phase 5 ships only the structural plumbing; the actual
arithmetic is implemented once the line search lands in
Phase 7.
pub fn set_curr(&mut self, curr: IteratesVector)
pub fn set_delta(&mut self, d: IteratesVector)
pub fn set_delta_aff(&mut self, d: IteratesVector)
pub fn set_delta_cen(&mut self, d: IteratesVector)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for IpoptData
impl !RefUnwindSafe for IpoptData
impl !Send for IpoptData
impl !Sync for IpoptData
impl Unpin for IpoptData
impl UnsafeUnpin for IpoptData
impl !UnwindSafe for IpoptData
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> 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