Struct PureValueClass
pub struct PureValueClass { /* private fields */ }Description
Pointwise value class of a formal argument or result.
Spatial tensors have a fixed rank and may constrain their common axis extent;
otherwise the extent is inferred from framed arguments or their common support.
A scalar is represented only by None, so spatial rank zero has no second
representation.
Implementations§
§impl PureValueClass
impl PureValueClass
pub fn with_scalar_domain(
self,
domain: ScalarDomain,
) -> Result<PureValueClass, PureOperatorError>
pub fn with_scalar_domain( self, domain: ScalarDomain, ) -> Result<PureValueClass, PureOperatorError>
Restrict an existing real or complex polynomial class to one scalar domain. Discrete domains cannot be embedded in a pure polynomial.
pub const fn scalar_domain(self) -> Option<ScalarDomain>
pub const fn scalar_domain(self) -> Option<ScalarDomain>
Explicit scalar-domain constraint, or None for a generic class.
§impl PureValueClass
impl PureValueClass
pub const fn invariant_scalar() -> PureValueClass
pub const fn invariant_scalar() -> PureValueClass
Invariant scalar on the common support.
pub fn spatial_tensor(rank: u16) -> Result<PureValueClass, PureOperatorError>
pub fn spatial_tensor(rank: u16) -> Result<PureValueClass, PureOperatorError>
Spatial Cartesian tensor of the given positive rank on the common support.
§Errors
Rejects rank zero and ranks above the internal MAX_TENSOR_RANK limit.
pub fn with_spatial_extent(
self,
extent: u32,
) -> Result<PureValueClass, PureOperatorError>
pub fn with_spatial_extent( self, extent: u32, ) -> Result<PureValueClass, PureOperatorError>
Constrain every spatial axis to one positive extent.
pub const fn spatial_extent(self) -> Option<u32>
pub const fn spatial_extent(self) -> Option<u32>
Spatial extent constraint, absent for a generic spatial class or a scalar.
pub const fn with_dimension(self, dimension: DimExponents) -> PureValueClass
pub const fn with_dimension(self, dimension: DimExponents) -> PureValueClass
Constrain this scalar or tensor class to one physical dimension.
pub const fn dimension(self) -> Option<DimExponents>
pub const fn dimension(self) -> Option<DimExponents>
Physical dimension constraint, absent for a generic class.
pub const fn spatial_rank(self) -> Option<u16>
pub const fn spatial_rank(self) -> Option<u16>
Spatial tensor rank, or None for an invariant scalar.
pub const fn rank(self) -> usize
pub const fn rank(self) -> usize
Mathematical value rank; zero denotes the invariant scalar.
pub const fn is_invariant_scalar(self) -> bool
pub const fn is_invariant_scalar(self) -> bool
Whether this is the invariant scalar.
Trait Implementations§
§impl Clone for PureValueClass
impl Clone for PureValueClass
§impl Debug for PureValueClass
impl Debug for PureValueClass
§impl Hash for PureValueClass
impl Hash for PureValueClass
§fn hash<__H>(&self, state: &mut __H)where
__H: Hasher,
fn hash<__H>(&self, state: &mut __H)where
__H: Hasher,
§impl Ord for PureValueClass
impl Ord for PureValueClass
§fn cmp(&self, other: &PureValueClass) -> Ordering
fn cmp(&self, other: &PureValueClass) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
§impl PartialEq for PureValueClass
impl PartialEq for PureValueClass
§fn eq(&self, other: &PureValueClass) -> bool
fn eq(&self, other: &PureValueClass) -> bool
self and other values to be equal, and is used by ==.§impl PartialOrd for PureValueClass
impl PartialOrd for PureValueClass
§fn partial_cmp(&self, other: &PureValueClass) -> Option<Ordering>
fn partial_cmp(&self, other: &PureValueClass) -> Option<Ordering>
1.0.0 (const: unstable) · Source§fn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
1.0.0 (const: unstable) · Source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
1.0.0 (const: unstable) · Source§fn gt(&self, other: &Rhs) -> bool
fn gt(&self, other: &Rhs) -> bool
impl Copy for PureValueClass
impl Eq for PureValueClass
impl StructuralPartialEq for PureValueClass
Auto Trait Implementations§
impl Freeze for PureValueClass
impl RefUnwindSafe for PureValueClass
impl Send for PureValueClass
impl Sync for PureValueClass
impl Unpin for PureValueClass
impl UnsafeUnpin for PureValueClass
impl UnwindSafe for PureValueClass
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<Q, K> Comparable<K> for Qwhere
Q: Ord + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Comparable<K> for Qwhere
Q: Ord + ?Sized,
K: Borrow<Q> + ?Sized,
§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.