pub struct AuxiliaryPreprocessingDiagnostics {Show 14 fields
pub blocks_eliminated: i32,
pub candidate_blocks: i32,
pub vars_eliminated: i32,
pub rows_eliminated: i32,
pub total_time_ms: u128,
pub stage_time_ms: StageTimings,
pub class_counts: ClassCounts,
pub max_block_residual: f64,
pub max_accepted_block_dim: i32,
pub rejection_reasons: Vec<AuxiliaryRejectionReason>,
pub trivially_fixed_vars: i32,
pub trivially_free_rows: i32,
pub trivially_slack_rows: i32,
pub inequality_coupled_accepted_via_projection: i32,
}Expand description
Per-run summary of what the auxiliary-equality preprocessing pass
did. All counters are zeroed by Default::default.
§Example
use pounce_presolve::diagnostics::AuxiliaryPreprocessingDiagnostics;
let d = AuxiliaryPreprocessingDiagnostics::default();
assert_eq!(d.blocks_eliminated, 0);
assert_eq!(d.candidate_blocks, 0);
assert!(d.rejection_reasons.is_empty());Fields§
§blocks_eliminated: i32Number of blocks the orchestrator successfully eliminated.
candidate_blocks: i32Total candidate blocks examined (eliminated + rejected).
vars_eliminated: i32Variables fixed by the eliminated blocks (sum of block dims).
rows_eliminated: i32Equality rows dropped from the reduced problem.
total_time_ms: u128Total wall time spent inside Phase 0, in milliseconds.
stage_time_ms: StageTimingsPer-stage wall-time breakdown.
class_counts: ClassCountsPer-coupling-class candidate counts.
max_block_residual: f64Largest block-solve residual accepted under
presolve_auxiliary_tol. 0.0 when nothing was eliminated.
max_accepted_block_dim: i32Dimension of the largest accepted block.
rejection_reasons: Vec<AuxiliaryRejectionReason>One entry per rejected candidate, in encounter order.
trivially_fixed_vars: i32PR 13: count of variables the trivial-elimination pre-pass
identified as already fixed (x_l[i] == x_u[i]). Excluded
from the incidence graph.
trivially_free_rows: i32PR 13: count of rows the trivial pre-pass identified as
“free” (g_l <= -big && g_u >= +big). Excluded.
trivially_slack_rows: i32PR 13: count of linear inequality rows already implied by the variable box. Excluded from the inequality incidence so they don’t trip coupling classification.
inequality_coupled_accepted_via_projection: i32PR 14: count of InequalityCoupled candidate blocks the
orchestrator admitted because every coupled inequality
turned out to be implied by the variable box after
projecting the block’s linear equality system.
Trait Implementations§
Source§impl Clone for AuxiliaryPreprocessingDiagnostics
impl Clone for AuxiliaryPreprocessingDiagnostics
Source§fn clone(&self) -> AuxiliaryPreprocessingDiagnostics
fn clone(&self) -> AuxiliaryPreprocessingDiagnostics
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for AuxiliaryPreprocessingDiagnostics
impl Default for AuxiliaryPreprocessingDiagnostics
Source§fn default() -> AuxiliaryPreprocessingDiagnostics
fn default() -> AuxiliaryPreprocessingDiagnostics
Auto Trait Implementations§
impl Freeze for AuxiliaryPreprocessingDiagnostics
impl RefUnwindSafe for AuxiliaryPreprocessingDiagnostics
impl Send for AuxiliaryPreprocessingDiagnostics
impl Sync for AuxiliaryPreprocessingDiagnostics
impl Unpin for AuxiliaryPreprocessingDiagnostics
impl UnsafeUnpin for AuxiliaryPreprocessingDiagnostics
impl UnwindSafe for AuxiliaryPreprocessingDiagnostics
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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