pub struct AuxiliaryPreprocessingDiagnostics {Show 14 fields
pub blocks_eliminated: Index,
pub candidate_blocks: Index,
pub vars_eliminated: Index,
pub rows_eliminated: Index,
pub total_time_ms: u128,
pub stage_time_ms: StageTimings,
pub class_counts: ClassCounts,
pub max_block_residual: Number,
pub max_accepted_block_dim: Index,
pub rejection_reasons: Vec<AuxiliaryRejectionReason>,
pub trivially_fixed_vars: Index,
pub trivially_free_rows: Index,
pub trivially_slack_rows: Index,
pub inequality_coupled_accepted_via_projection: Index,
}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: IndexNumber of blocks the orchestrator successfully eliminated.
candidate_blocks: IndexTotal candidate blocks examined (eliminated + rejected).
vars_eliminated: IndexVariables fixed by the eliminated blocks (sum of block dims).
rows_eliminated: IndexEquality 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: NumberLargest block-solve residual accepted under
presolve_auxiliary_tol. 0.0 when nothing was eliminated.
max_accepted_block_dim: IndexDimension of the largest accepted block.
rejection_reasons: Vec<AuxiliaryRejectionReason>One entry per rejected candidate, in encounter order.
trivially_fixed_vars: IndexPR 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: IndexPR 13: count of rows the trivial pre-pass identified as
“free” (g_l <= -big && g_u >= +big). Excluded.
trivially_slack_rows: IndexPR 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: IndexPR 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 more