pub enum SemiringCoreDescriptor {
BatchedGemm {
batch_dims: Vec<usize>,
m: usize,
n: usize,
k: usize,
},
ReduceAdd {
modes_a: Vec<u32>,
modes_c: Vec<u32>,
},
Trace {
modes_a: Vec<u32>,
modes_c: Vec<u32>,
paired: Vec<(u32, u32)>,
},
AntiTrace {
modes_a: Vec<u32>,
modes_c: Vec<u32>,
paired: Vec<(u32, u32)>,
},
AntiDiag {
modes_a: Vec<u32>,
modes_c: Vec<u32>,
paired: Vec<(u32, u32)>,
},
MakeContiguous,
}Expand description
Descriptor for semiring-core execution operations.
This is the minimal protocol family that tenferro-einsum may depend on.
§Examples
use tenferro_prims::SemiringCoreDescriptor;
let desc = SemiringCoreDescriptor::MakeContiguous;
assert!(matches!(desc, SemiringCoreDescriptor::MakeContiguous));Variants§
BatchedGemm
Batched semiring GEMM.
Fields
ReduceAdd
Reduction using semiring addition.
Fields
Trace
Diagonal contraction.
Fields
AntiTrace
Diagonal scatter-add for trace adjoints.
Fields
AntiDiag
Diagonal scatter/write for diag adjoints.
Fields
MakeContiguous
Materialize a contiguous output tensor.
Trait Implementations§
Source§impl Clone for SemiringCoreDescriptor
impl Clone for SemiringCoreDescriptor
Source§fn clone(&self) -> SemiringCoreDescriptor
fn clone(&self) -> SemiringCoreDescriptor
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 SemiringCoreDescriptor
impl Debug for SemiringCoreDescriptor
Source§impl Hash for SemiringCoreDescriptor
impl Hash for SemiringCoreDescriptor
Source§impl PartialEq for SemiringCoreDescriptor
impl PartialEq for SemiringCoreDescriptor
impl Eq for SemiringCoreDescriptor
impl StructuralPartialEq for SemiringCoreDescriptor
Auto Trait Implementations§
impl Freeze for SemiringCoreDescriptor
impl RefUnwindSafe for SemiringCoreDescriptor
impl Send for SemiringCoreDescriptor
impl Sync for SemiringCoreDescriptor
impl Unpin for SemiringCoreDescriptor
impl UnwindSafe for SemiringCoreDescriptor
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>,
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