pub struct RefinementDiagnostics {
pub anorm_1: f64,
pub kappa_1_est: f64,
pub steps: Vec<RefinementStep>,
pub returned_step: usize,
}Expand description
Diagnostic data returned by solve_sparse_refined_with_diagnostics.
kappa_1_est is computed once per refinement run via the Hager–Higham
1-norm power iteration (3–5 extra solves) — it depends only on A and
its factor, not on the residual or x. Per-step forward_error_bound
values multiply this constant against the trajectory’s relative
residual.
This is the F2.3 deliverable from dev/plans/kkt-feature-gaps.md:
diagnostic emission only, no behavior change. The non-diagnostic
solve_sparse_refined continues to make the identical control-flow
choices.
Fields§
§anorm_1: f64Exact ||A||_1 (single linear pass over the CSC values).
kappa_1_est: f64Hager–Higham estimate of ||A||_1 · ||A^{-1}||_1. A statistical
lower bound; see dev/research/condition-estimate.md.
steps: Vec<RefinementStep>Per-step residual / forward-error trajectory. steps[0] is the
unrefined solve.
returned_step: usizeIndex into steps whose iterate is returned (best ||r||_2).
Trait Implementations§
Source§impl Clone for RefinementDiagnostics
impl Clone for RefinementDiagnostics
Source§fn clone(&self) -> RefinementDiagnostics
fn clone(&self) -> RefinementDiagnostics
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for RefinementDiagnostics
impl RefUnwindSafe for RefinementDiagnostics
impl Send for RefinementDiagnostics
impl Sync for RefinementDiagnostics
impl Unpin for RefinementDiagnostics
impl UnsafeUnpin for RefinementDiagnostics
impl UnwindSafe for RefinementDiagnostics
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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