pub struct ActivityReport {Show 13 fields
pub mu: Number,
pub var_status: Vec<i8>,
pub var_ratio: Vec<Number>,
pub var_q_sign: Vec<i8>,
pub var_off_central_path: Vec<bool>,
pub var_contaminated: Vec<bool>,
pub var_sigma: Vec<Number>,
pub row_status: Vec<i8>,
pub row_ratio: Vec<Number>,
pub row_q_sign: Vec<i8>,
pub row_off_central_path: Vec<bool>,
pub row_contaminated: Vec<bool>,
pub row_sigma: Vec<Number>,
}Expand description
Per-variable and per-row classification of a converged solve.
All vectors are user-space: var_* have length n_full_x (the
user TNLP’s n) and row_* length n_full_g (the user’s m).
Entries with no finite bound hold UNBOUNDED; FIXED
variables and EQUALITY rows are placeholders for entries the
barrier never classified. All three carry NaN ratios.
Fields§
§mu: NumberBarrier parameter of the converged iterate.
var_status: Vec<i8>Status per user variable (codes above).
var_ratio: Vec<Number>Σ_i / q_i per user variable; NaN where not classified.
For an UNIDENTIFIED entry the value is Σ/floor, a lower
bound on any honest ratio rather than the ratio itself, since
q is below the identification floor there.
var_q_sign: Vec<i8>Sign of the signed curvature H_ii (−1, 0, +1); the absolute
value goes into q, so an indefinite direction is reported
rather than hidden.
var_off_central_path: Vec<bool>s·z differs from μ by more than a factor of ten on some
side: off the central path, or the bound was relaxed.
var_contaminated: Vec<bool>Classified inactive yet r non-negligible: barrier curvature
where none should be.
var_sigma: Vec<Number>The barrier diagonal Σ_i = z/s itself per user variable, both
sides summed; 0 where not classified. In natural (unscaled)
units, the repo’s sensitivity-output contract: classification
runs on the solver’s scaled quantities (the ratio is
scale-invariant), the report does not. The covariance roadmap’s
item 1 subtracts exactly this from the factor’s natural-units
reduced Hessian.
row_status: Vec<i8>Status per user constraint row.
row_ratio: Vec<Number>Σ_j / q_j per user row; NaN where not classified.
UNIDENTIFIED entries hold Σ/floor as for variables.
row_q_sign: Vec<i8>Sign of the signed row curvature ∇dⱼᵀ H ∇dⱼ.
row_off_central_path: Vec<bool>Central-path check per row, as for variables.
row_contaminated: Vec<bool>Contamination check per row, as for variables.
row_sigma: Vec<Number>The row barrier diagonal Σ_j = v/s per user row, both sides
summed; 0 where not classified. In natural (unscaled) units
like Self::var_sigma, and RAW rather than the geometric
weight the classification uses: item 1 restricts the normal to
its own fitted block and applies its own ‖a‖² factor there.
Auto Trait Implementations§
impl Freeze for ActivityReport
impl RefUnwindSafe for ActivityReport
impl Send for ActivityReport
impl Sync for ActivityReport
impl Unpin for ActivityReport
impl UnsafeUnpin for ActivityReport
impl UnwindSafe for ActivityReport
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
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