Struct SolverCapabilities
pub struct SolverCapabilities { /* private fields */ }Description
Exact numerical policies admitted by one adapter.
Implementations§
§impl SolverCapabilities
impl SolverCapabilities
pub fn reference() -> SolverCapabilities
pub fn reference() -> SolverCapabilities
Capabilities of the deterministic host-local reference oracle.
pub fn new(
algorithms: impl IntoIterator<Item = LinearSolver>,
preconditioners: impl IntoIterator<Item = PreconditionerPolicy>,
reductions: impl IntoIterator<Item = ReductionPolicy>,
scalar_types: impl IntoIterator<Item = ScalarType>,
) -> Result<SolverCapabilities, Diagnostic>
pub fn new( algorithms: impl IntoIterator<Item = LinearSolver>, preconditioners: impl IntoIterator<Item = PreconditionerPolicy>, reductions: impl IntoIterator<Item = ReductionPolicy>, scalar_types: impl IntoIterator<Item = ScalarType>, ) -> Result<SolverCapabilities, Diagnostic>
Construct a nonempty capability set when every supplied axis forms a genuinely implemented Cartesian product.
§Errors
Returns EQ0807 if any capability axis is empty.
pub fn exact(
combinations: impl IntoIterator<Item = SolverCapability>,
) -> Result<SolverCapabilities, Diagnostic>
pub fn exact( combinations: impl IntoIterator<Item = SolverCapability>, ) -> Result<SolverCapabilities, Diagnostic>
Construct a nonempty set of exact supported tuples without taking a Cartesian product of independent-looking policy axes.
§Errors
Returns EQ0807 when no tuple is supplied.
pub const fn combinations(&self) -> &BTreeSet<SolverCapability>
pub const fn combinations(&self) -> &BTreeSet<SolverCapability>
Exact implemented policy tuples.
pub const fn algorithms(&self) -> &BTreeSet<LinearSolver>
pub const fn algorithms(&self) -> &BTreeSet<LinearSolver>
Algorithms admitted by this adapter.
pub const fn preconditioners(&self) -> &BTreeSet<PreconditionerPolicy>
pub const fn preconditioners(&self) -> &BTreeSet<PreconditionerPolicy>
Preconditioners admitted by this adapter.
pub const fn reductions(&self) -> &BTreeSet<ReductionPolicy>
pub const fn reductions(&self) -> &BTreeSet<ReductionPolicy>
Reduction policies admitted by this adapter.
pub const fn scalar_types(&self) -> &BTreeSet<ScalarType>
pub const fn scalar_types(&self) -> &BTreeSet<ScalarType>
Scalar representations admitted by this adapter.
pub fn supports_scalar(&self, scalar_type: ScalarType) -> bool
pub fn supports_scalar(&self, scalar_type: ScalarType) -> bool
Whether a scalar representation is admitted.
pub fn require(
&self,
plan: SolverPlan,
scalar_type: ScalarType,
) -> Result<(), Diagnostic>
pub fn require( &self, plan: SolverPlan, scalar_type: ScalarType, ) -> Result<(), Diagnostic>
Validate a plan and scalar representation without fallback.
§Errors
Returns EQ0807 for any unsupported selection.
pub fn require_problem(
&self,
plan: SolverPlan,
scalar_type: ScalarType,
operator_properties: LinearOperatorProperties,
) -> Result<(), Diagnostic>
pub fn require_problem( &self, plan: SolverPlan, scalar_type: ScalarType, operator_properties: LinearOperatorProperties, ) -> Result<(), Diagnostic>
Validate a complete plan, scalar type, and operator assertion.
§Errors
Returns EQ0807 unless the exact tuple is implemented.
Trait Implementations§
§impl Clone for SolverCapabilities
impl Clone for SolverCapabilities
§impl Debug for SolverCapabilities
impl Debug for SolverCapabilities
§impl PartialEq for SolverCapabilities
impl PartialEq for SolverCapabilities
§fn eq(&self, other: &SolverCapabilities) -> bool
fn eq(&self, other: &SolverCapabilities) -> bool
self and other values to be equal, and is used by ==.impl Eq for SolverCapabilities
impl StructuralPartialEq for SolverCapabilities
Auto Trait Implementations§
impl Freeze for SolverCapabilities
impl RefUnwindSafe for SolverCapabilities
impl Send for SolverCapabilities
impl Sync for SolverCapabilities
impl Unpin for SolverCapabilities
impl UnsafeUnpin for SolverCapabilities
impl UnwindSafe for SolverCapabilities
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
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.