pub trait EinsumBackend<Alg: Semiring>: TensorSemiringCore<Alg> + TensorSemiringFastPath<Alg, Plan = <Self as TensorSemiringCore<Alg>>::Plan, Context = <Self as TensorSemiringCore<Alg>>::Context> { }Expand description
Public backend contract accepted by tenferro-einsum.
Backends must provide the semiring core operations needed for all einsum execution paths, plus the optional semiring fast paths used for optimized contraction and elementwise multiplication.
§Examples
ⓘ
use tenferro_algebra::Standard;
use tenferro_einsum::EinsumBackend;
use tenferro_prims::CpuBackend;
fn assert_backend<B: EinsumBackend<Standard<f64>>>() {}
assert_backend::<CpuBackend>();Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.