Struct HostSerialSolverProfile
pub struct HostSerialSolverProfile { /* private fields */ }Description
Structural operator facts admitted before host-serial numerical work.
Implementations§
§impl HostSerialSolverProfile
impl HostSerialSolverProfile
pub const fn general_canonical_csr() -> HostSerialSolverProfile
pub const fn general_canonical_csr() -> HostSerialSolverProfile
Describe a normal-orientation, complete-diagonal canonical CSR General operator without constructing or applying its numerical coefficients.
pub const fn canonical_csr(
properties: LinearOperatorProperties,
complete_diagonal: Option<bool>,
required_reduction: Option<ReductionPolicy>,
) -> HostSerialSolverProfile
pub const fn canonical_csr( properties: LinearOperatorProperties, complete_diagonal: Option<bool>, required_reduction: Option<ReductionPolicy>, ) -> HostSerialSolverProfile
Describe a normal-orientation canonical CSR operator using exact
method-owned mathematical properties and structural diagonal availability.
Some(true) asserts a complete diagonal, Some(false) asserts its
absence, and None makes no diagonal claim. Jacobi requires Some(true);
identity-preconditioned candidates need no diagonal assertion.
Properties are assertions supplied by the mathematical admission owner.
This profile does not establish positive definiteness, remove a nullspace,
or authenticate a pressure gauge. with_structure retains method-owned
Field and multiplier ownership for admission and execution authentication.
A required reduction is an execution constraint, independent of ranking
objective; None permits either policy.
Constraint elimination or explicit gauge augmentation must already be complete. No matrix values
are inspected while planning; execution rechecks these structural facts.
pub fn with_structure(
self,
structure: AlgebraicStructure,
) -> Result<HostSerialSolverProfile, Diagnostic>
pub fn with_structure( self, structure: AlgebraicStructure, ) -> Result<HostSerialSolverProfile, Diagnostic>
Bind method-owned Field/gauge structure before exact admission or ranking.
§Errors
A multiplier gauge is incompatible with a positive-definite operator assertion.
pub fn require_structure(
&self,
structure: Option<&AlgebraicStructure>,
) -> Result<(), Diagnostic>
pub fn require_structure( &self, structure: Option<&AlgebraicStructure>, ) -> Result<(), Diagnostic>
Reauthenticate the method-owned structure before execution.
§Errors
Rejects changed, omitted, or unexpected Field/gauge ownership.
pub fn require_plan(&self, plan: SolverPlan) -> Result<(), Diagnostic>
pub fn require_plan(&self, plan: SolverPlan) -> Result<(), Diagnostic>
Admit an exact solver tuple against the same structural and execution requirements used before catalog ranking.
§Errors
Returns EQ0807 when Jacobi lacks a complete structural diagonal or the
requested reduction differs from the execution requirement.
pub fn require_problem<S>(
&self,
problem: &LinearProblem<'_, S>,
) -> Result<(), Diagnostic>where
S: Scalar + ComplexFloat<Real = f64> + Sync,
pub fn require_problem<S>(
&self,
problem: &LinearProblem<'_, S>,
) -> Result<(), Diagnostic>where
S: Scalar + ComplexFloat<Real = f64> + Sync,
Reauthenticate every claimed fact against the actual canonical problem. An unclaimed diagonal remains unconstrained; known facts must match exactly. These structural facts are shared by real and complex coefficients; exact scalar-domain and precision admission remains the selected backend’s responsibility.
§Errors
Returns EQ0807 before numerical work when a claimed fact differs.
Trait Implementations§
§impl Clone for HostSerialSolverProfile
impl Clone for HostSerialSolverProfile
§impl Debug for HostSerialSolverProfile
impl Debug for HostSerialSolverProfile
§impl PartialEq for HostSerialSolverProfile
impl PartialEq for HostSerialSolverProfile
§fn eq(&self, other: &HostSerialSolverProfile) -> bool
fn eq(&self, other: &HostSerialSolverProfile) -> bool
self and other values to be equal, and is used by ==.impl Eq for HostSerialSolverProfile
impl StructuralPartialEq for HostSerialSolverProfile
Auto Trait Implementations§
impl Freeze for HostSerialSolverProfile
impl RefUnwindSafe for HostSerialSolverProfile
impl Send for HostSerialSolverProfile
impl Sync for HostSerialSolverProfile
impl Unpin for HostSerialSolverProfile
impl UnsafeUnpin for HostSerialSolverProfile
impl UnwindSafe for HostSerialSolverProfile
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>,
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Source§impl<T> From<T> for T
impl<T> From<T> for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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.