Back to Eqiora docs Skip to main content

ValueType

Struct ValueType 

pub struct ValueType { /* private fields */ }
Description

Checked mathematical value type. Support and activation belong to its use site.

Implementations§

§

impl ValueType

pub fn hermitian_eigenpair_types( &self, metric: &ValueType, ) -> Result<(ValueType, ValueType), InvalidValueType>

Derive (eigenvalue, mode) types for a Hermitian pencil A u = lambda B u.

Both maps must be endomorphisms of the same declared orthonormal basis. Eigenvalues are real with dimension A/B; modes have dimension B^(-1/2) for the dimensionless normalization uᴴ B u = 1. Either complex map requires complex modes. A standard eigenproblem uses an explicitly dimensionless identity metric in the same basis.

This checks types only. Execution must still verify that the coefficients are Hermitian and that the metric is positive definite.

§

impl ValueType

pub fn coordinates( basis: FiniteBasis, domain: ScalarDomain, dimension: DimExponents, ) -> Result<ValueType, InvalidValueType>

Numeric coordinates in one primal or dual basis. Integer coordinates describe the primal lattice; duals require real or complex scalars.

pub fn counts( space: Id<FiniteSpace>, extent: u32, ) -> Result<ValueType, InvalidValueType>

Nonnegative counts in one primal basis, distinct from signed coordinates.

pub fn linear_map( source: FiniteBasis, target: FiniteBasis, domain: ScalarDomain, dimension: DimExponents, ) -> Result<ValueType, InvalidValueType>

A real or complex linear map with ordered input and output basis identities. Storage axes are output rows followed by input columns; physical dimension is the map’s.

pub const fn coordinate_basis(&self) -> Option<FiniteBasis>

Basis of a coordinate type; None for counts and linear maps.

pub const fn map_bases(&self) -> Option<(FiniteBasis, FiniteBasis)>

Ordered input and output bases of a linear map.

pub fn finite_bases(&self) -> impl Iterator<Item = FiniteBasis>

Every nominal finite basis referenced by this type, input before output for maps.

pub const fn finite_space(&self) -> Option<Id<FiniteSpace>>

Single finite declaration of a coordinate or count; maps have two explicit bases.

pub const fn is_count(&self) -> bool

Whether this value carries the nonnegative count contract.

§

impl ValueType

pub const MAX_ENUM_MEMBERS: u32 = 65_536

Shared finite enum declaration bound; executable case DAGs have separate limits.

pub fn enumeration( definition: Id<Enum>, member_count: u32, ) -> Result<ValueType, InvalidValueType>

One closed nominal enum declaration; members are not numeric ordinals.

pub const fn enum_definition(&self) -> Option<Id<Enum>>

Exact enum declaration identity.

pub const fn enum_member_count(&self) -> Option<u32>

Declared member count, checked against the declaration during semantic validation.

pub fn boolean() -> ValueType

Dimensionless invariant logical scalar, distinct from every numeric domain.

pub fn index( set: Id<IndexSet>, extent: u32, ) -> Result<ValueType, InvalidValueType>

Ordinal bounded by one IndexSet declaration.

pub const fn index_set(&self) -> Option<Id<IndexSet>>

IndexSet identity; None for ordinary integers.

pub const fn index_extent(&self) -> Option<u32>

Declared exclusive index bound, validated against the semantic declaration.

pub fn with_common_scalar_domain(self, other: &ValueType) -> Option<ValueType>

Promote scalar components to the smallest common domain without changing their roles.

pub fn array(self, extent: u32) -> Result<ValueType, InvalidValueType>

Wrap this complete element type in one ordered channel-array axis.

§Errors

Rejects a zero extent or an unrepresentable component count.

pub const fn array_rank(&self) -> usize

Number of outer channel-array axes, distinct from inner spatial axes.

pub fn with_dimension( self, dimension: DimExponents, ) -> Result<ValueType, InvalidValueType>

Preserve the scalar domain and component meaning with a checked derived dimension.

pub fn scalar( scalar_domain: ScalarDomain, dimension: DimExponents, ) -> Result<ValueType, InvalidValueType>

Construct a checked invariant scalar type. Nominal enums require enumeration.

pub fn shaped( scalar_domain: ScalarDomain, dimension: DimExponents, shape: ValueShape, frame: ValueFrame, ) -> Result<ValueType, InvalidValueType>

Construct exact channel axes (invariant) or spatial axes (Cartesian). Wrap spatial elements with Self::array for arrays of vectors or tensors.

§Errors

Rejects an unrepresentable component count or a frame-bearing scalar.

pub const fn scalar_domain(&self) -> ScalarDomain

Mathematical domain of each scalar component.

pub const fn dimension(&self) -> DimExponents

Exact physical dimension of each component.

pub const fn shape(&self) -> &ValueShape

Ordered mathematical component extents.

pub const fn frame(&self) -> ValueFrame

Coordinate-frame meaning of the components.

Trait Implementations§

§

impl Clone for ValueType

§

fn clone(&self) -> ValueType

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ValueType

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Hash for ValueType

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl PartialEq for ValueType

§

fn eq(&self, other: &ValueType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Eq for ValueType

§

impl StructuralPartialEq for ValueType

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<Src, Scheme> ApproxFrom<Src, Scheme> for Src
where Scheme: ApproxScheme,

§

type Err = NoError

The error type produced by a failed conversion.
§

fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>

Convert the given value into an approximately equivalent representation.
§

impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Src
where Dst: ApproxFrom<Src, Scheme>, Scheme: ApproxScheme,

§

type Err = <Dst as ApproxFrom<Src, Scheme>>::Err

The error type produced by a failed conversion.
§

fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>

Convert the subject into an approximately equivalent representation.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> ByRef<T> for T

§

fn by_ref(&self) -> &T

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T, Dst> ConvAsUtil<Dst> for T

§

fn approx(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject with the default scheme.
§

fn approx_by<Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject with a specific scheme.
§

impl<T> ConvUtil for T

§

fn approx_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst>,

Approximate the subject to a given type with the default scheme.
§

fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>
where Self: Sized + ApproxInto<Dst, Scheme>, Scheme: ApproxScheme,

Approximate the subject to a given type with a specific scheme.
§

fn into_as<Dst>(self) -> Dst
where Self: Sized + Into<Dst>,

Convert the subject to a given type.
§

fn try_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + TryInto<Dst>,

Attempt to convert the subject to a given type.
§

fn value_as<Dst>(self) -> Result<Dst, Self::Err>
where Self: Sized + ValueInto<Dst>,

Attempt a value conversion of the subject to a given type.
§

impl<T> DistributionExt for T
where T: ?Sized,

§

fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> T
where Self: Distribution<T>,

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<Src> TryFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
§

fn try_from(src: Src) -> Result<Src, <Src as TryFrom<Src>>::Err>

Convert the given value into the subject type.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<Src, Dst> TryInto<Dst> for Src
where Dst: TryFrom<Src>,

§

type Err = <Dst as TryFrom<Src>>::Err

The error type produced by a failed conversion.
§

fn try_into(self) -> Result<Dst, <Src as TryInto<Dst>>::Err>

Convert the subject into the destination type.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<Src> ValueFrom<Src> for Src

§

type Err = NoError

The error type produced by a failed conversion.
§

fn value_from(src: Src) -> Result<Src, <Src as ValueFrom<Src>>::Err>

Convert the given value into an exactly equivalent representation.
§

impl<Src, Dst> ValueInto<Dst> for Src
where Dst: ValueFrom<Src>,

§

type Err = <Dst as ValueFrom<Src>>::Err

The error type produced by a failed conversion.
§

fn value_into(self) -> Result<Dst, <Src as ValueInto<Dst>>::Err>

Convert the subject into an exactly equivalent representation.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T, U> Imply<T> for U
where T: ?Sized, U: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,