pub struct EinsumSubscripts {
pub inputs: Vec<Vec<u32>>,
pub output: Vec<u32>,
}Expand description
Canonical N-ary einsum subscripts using integer labels.
String notation is a user-facing convenience. Runtime integration layers can carry this representation in extension payloads so execution, shape inference, and AD do not need to parse strings.
Fields§
§inputs: Vec<Vec<u32>>Index labels for each input tensor.
output: Vec<u32>Index labels for the output tensor.
Implementations§
Source§impl EinsumSubscripts
impl EinsumSubscripts
Sourcepub fn new(inputs: &[&[u32]], output: &[u32]) -> Self
pub fn new(inputs: &[&[u32]], output: &[u32]) -> Self
Create subscripts from integer label arrays.
§Examples
use tenferro_einsum::EinsumSubscripts;
let subscripts = EinsumSubscripts::new(&[&[0, 1], &[1, 2]], &[0, 2]);
assert_eq!(subscripts.inputs, vec![vec![0, 1], vec![1, 2]]);
assert_eq!(subscripts.output, vec![0, 2]);Sourcepub fn input_count(&self) -> usize
pub fn input_count(&self) -> usize
Number of input operands described by this specification.
§Examples
use tenferro_einsum::EinsumSubscripts;
let subscripts = EinsumSubscripts::new(&[&[0], &[0]], &[]);
assert_eq!(subscripts.input_count(), 2);Trait Implementations§
Source§impl Clone for EinsumSubscripts
impl Clone for EinsumSubscripts
Source§fn clone(&self) -> EinsumSubscripts
fn clone(&self) -> EinsumSubscripts
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for EinsumSubscripts
impl Debug for EinsumSubscripts
Source§impl From<&EinsumSubscripts> for Subscripts
impl From<&EinsumSubscripts> for Subscripts
Source§fn from(subscripts: &EinsumSubscripts) -> Self
fn from(subscripts: &EinsumSubscripts) -> Self
Converts to this type from the input type.
Source§impl From<&Subscripts> for EinsumSubscripts
impl From<&Subscripts> for EinsumSubscripts
Source§fn from(subscripts: &Subscripts) -> Self
fn from(subscripts: &Subscripts) -> Self
Converts to this type from the input type.
Source§impl From<EinsumSubscripts> for Subscripts
impl From<EinsumSubscripts> for Subscripts
Source§fn from(subscripts: EinsumSubscripts) -> Self
fn from(subscripts: EinsumSubscripts) -> Self
Converts to this type from the input type.
Source§impl From<Subscripts> for EinsumSubscripts
impl From<Subscripts> for EinsumSubscripts
Source§fn from(subscripts: Subscripts) -> Self
fn from(subscripts: Subscripts) -> Self
Converts to this type from the input type.
Source§impl Hash for EinsumSubscripts
impl Hash for EinsumSubscripts
Source§impl PartialEq for EinsumSubscripts
impl PartialEq for EinsumSubscripts
impl Eq for EinsumSubscripts
impl StructuralPartialEq for EinsumSubscripts
Auto Trait Implementations§
impl Freeze for EinsumSubscripts
impl RefUnwindSafe for EinsumSubscripts
impl Send for EinsumSubscripts
impl Sync for EinsumSubscripts
impl Unpin for EinsumSubscripts
impl UnsafeUnpin for EinsumSubscripts
impl UnwindSafe for EinsumSubscripts
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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 Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
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>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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