pub trait TensorReadEinsumExt {
// Required methods
fn einsum_read<B: TensorBackend>(
&self,
subscripts: &str,
backend: &mut B,
) -> Result<Tensor>;
fn einsum_read_subscripts<B: TensorBackend>(
&self,
subscripts: &EinsumSubscripts,
backend: &mut B,
) -> Result<Tensor>;
}Expand description
Backend-explicit einsum methods for TensorRead inputs.
Use this surface when an input is a borrowed tensor view rather than an
owned compact Tensor. The _read suffix follows the repository-wide
convention for APIs that explicitly accept read-oriented borrowed inputs.
§Examples
use tenferro_cpu::CpuBackend;
use tenferro_einsum::TensorReadEinsumExt;
use tenferro_tensor::{Tensor, TensorRead, TensorView};
let shape = [2, 3];
let data = [1.0_f64; 6];
let rhs = Tensor::from_vec_col_major(vec![3], vec![1.0_f64; 3]).unwrap();
let inputs = [
TensorRead::from_view(TensorView::f64(&shape, &data)?),
TensorRead::from_tensor(&rhs),
];
let mut backend = CpuBackend::new();
let out = inputs.einsum_read("ij,j->i", &mut backend)?;
assert_eq!(out.shape(), &[2]);Required Methods§
Sourcefn einsum_read<B: TensorBackend>(
&self,
subscripts: &str,
backend: &mut B,
) -> Result<Tensor>
fn einsum_read<B: TensorBackend>( &self, subscripts: &str, backend: &mut B, ) -> Result<Tensor>
Execute an einsum from string notation over read-only tensor inputs.
Sourcefn einsum_read_subscripts<B: TensorBackend>(
&self,
subscripts: &EinsumSubscripts,
backend: &mut B,
) -> Result<Tensor>
fn einsum_read_subscripts<B: TensorBackend>( &self, subscripts: &EinsumSubscripts, backend: &mut B, ) -> Result<Tensor>
Execute an einsum from parsed integer-label subscripts over read-only tensor inputs.
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.