Struct SolverPlan
pub struct SolverPlan { /* private fields */ }Description
Complete numerical policy for one linear solve.
This is the only solver-control type. Numerical realization crates consume it directly; they do not translate it into method-specific configuration.
Implementations§
§impl SolverPlan
impl SolverPlan
pub fn new(
algorithm: LinearSolver,
relative_tolerance: f64,
absolute_tolerance: f64,
maximum_iterations: NonZero<usize>,
) -> Result<SolverPlan, Diagnostic>
pub fn new( algorithm: LinearSolver, relative_tolerance: f64, absolute_tolerance: f64, maximum_iterations: NonZero<usize>, ) -> Result<SolverPlan, Diagnostic>
Construct a validated plan with identity preconditioning and a reproducible reduction policy.
§Errors
Returns EQ0807 for non-finite, negative, or jointly zero tolerances.
pub const fn with_preconditioner(
self,
preconditioner: PreconditionerPolicy,
) -> SolverPlan
pub const fn with_preconditioner( self, preconditioner: PreconditionerPolicy, ) -> SolverPlan
Select a preconditioner without changing the other controls.
pub const fn with_reduction(self, reduction: ReductionPolicy) -> SolverPlan
pub const fn with_reduction(self, reduction: ReductionPolicy) -> SolverPlan
Select a reduction policy without changing the other controls.
pub const fn preconditioner(self) -> PreconditionerPolicy
pub const fn preconditioner(self) -> PreconditionerPolicy
Preconditioner policy.
pub const fn reduction(self) -> ReductionPolicy
pub const fn reduction(self) -> ReductionPolicy
Floating-point reduction policy.
pub const fn relative_tolerance(self) -> f64
pub const fn relative_tolerance(self) -> f64
Relative convergence tolerance.
pub const fn absolute_tolerance(self) -> f64
pub const fn absolute_tolerance(self) -> f64
Absolute convergence tolerance.
pub const fn maximum_iterations(self) -> NonZero<usize>
pub const fn maximum_iterations(self) -> NonZero<usize>
Iteration limit or direct-solve work bound.
The eqiora.reference minimum-residual implementation caps its retained
full-H projection at the smaller of this value and the operator
dimension. Other providers interpret this common bound independently.
Sparse LU retains this field as part of the common plan identity, ignores it as a factorization control, and reports at most one completed factor-and-solve attempt.
pub fn residual_target(
self,
right_hand_side_norm: f64,
) -> Result<f64, Diagnostic>
pub fn residual_target( self, right_hand_side_norm: f64, ) -> Result<f64, Diagnostic>
Accepted Euclidean residual threshold for a right-hand-side norm.
§Errors
Returns EQ0802 if the norm is negative/non-finite or the target
overflows.
Trait Implementations§
§impl Clone for SolverPlan
impl Clone for SolverPlan
§impl Debug for SolverPlan
impl Debug for SolverPlan
§impl PartialEq for SolverPlan
impl PartialEq for SolverPlan
§fn eq(&self, other: &SolverPlan) -> bool
fn eq(&self, other: &SolverPlan) -> bool
self and other values to be equal, and is used by ==.impl Copy for SolverPlan
impl StructuralPartialEq for SolverPlan
Auto Trait Implementations§
impl Freeze for SolverPlan
impl RefUnwindSafe for SolverPlan
impl Send for SolverPlan
impl Sync for SolverPlan
impl Unpin for SolverPlan
impl UnsafeUnpin for SolverPlan
impl UnwindSafe for SolverPlan
Blanket Implementations§
Source§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Source§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
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,
§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§impl<T> ConvUtil for T
impl<T> ConvUtil for T
§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
§fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
Source§impl<T> From<T> for T
impl<T> From<T> for T
Source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
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>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
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§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Same for T
impl<T> Same for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.