pub enum ArrowSolvePrecisionPolicy {
F64Only,
CertifiedMixed {
max_refinement_steps: usize,
residual_relative_tolerance: f64,
kappa_unit_roundoff_margin: f64,
},
}Expand description
Opt-in Carson–Higham mixed-precision refinement for dense arrow solves.
Default is ArrowSolvePrecisionPolicy::F64Only: exact f64 solves remain the default.
ArrowSolvePrecisionPolicy::CertifiedMixed stores f32 copies of the per-row Cholesky
factors and dense Schur factor, solves corrections in f32, and recomputes the
residual in f64 against the original arrow blocks. The standard refinement
certificate is the normwise backward error
||r||_inf / (||H||_inf ||x||_inf + ||b||_inf) <= residual_relative_tolerance.
The kappa gate enforces kappa_estimate * u_f32 < kappa_unit_roundoff_margin;
when it fails, the solve reports MixedPrecisionStatus::F64Fallback and
logs the reason before using the f64 path.
Variants§
Implementations§
Source§impl ArrowSolvePrecisionPolicy
impl ArrowSolvePrecisionPolicy
pub fn certified_mixed() -> Self
Trait Implementations§
Source§impl Clone for ArrowSolvePrecisionPolicy
impl Clone for ArrowSolvePrecisionPolicy
Source§fn clone(&self) -> ArrowSolvePrecisionPolicy
fn clone(&self) -> ArrowSolvePrecisionPolicy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for ArrowSolvePrecisionPolicy
Source§impl Debug for ArrowSolvePrecisionPolicy
impl Debug for ArrowSolvePrecisionPolicy
Source§impl Default for ArrowSolvePrecisionPolicy
impl Default for ArrowSolvePrecisionPolicy
Source§impl PartialEq for ArrowSolvePrecisionPolicy
impl PartialEq for ArrowSolvePrecisionPolicy
Source§fn eq(&self, other: &ArrowSolvePrecisionPolicy) -> bool
fn eq(&self, other: &ArrowSolvePrecisionPolicy) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for ArrowSolvePrecisionPolicy
Auto Trait Implementations§
impl Freeze for ArrowSolvePrecisionPolicy
impl RefUnwindSafe for ArrowSolvePrecisionPolicy
impl Send for ArrowSolvePrecisionPolicy
impl Sync for ArrowSolvePrecisionPolicy
impl Unpin for ArrowSolvePrecisionPolicy
impl UnsafeUnpin for ArrowSolvePrecisionPolicy
impl UnwindSafe for ArrowSolvePrecisionPolicy
Blanket Implementations§
impl<T> Allocation for T
impl<T> Boilerplate for T
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
Mutably borrows from an owned value. Read more
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,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T, U> Imply<T> for U
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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.