pub fn einsum_into<T: EinsumScalar>(
notation: &str,
operands: Vec<EinsumOperand<'_>>,
output: StridedViewMut<'_, T>,
alpha: T,
beta: T,
size_dict: Option<&HashMap<char, usize>>,
) -> Result<()>Expand description
Parse and evaluate an einsum expression, writing the result into a pre-allocated output buffer with alpha/beta scaling.
output = alpha * einsum(operands) + beta * output
Pass size_dict to specify sizes for output indices not present in any
input (generative outputs like "->ii" or "i->ij").
§Example
ⓘ
use strided_opteinsum::{einsum_into, EinsumOperand};
let mut c = StridedArray::<f64>::col_major(&[2, 2]);
einsum_into("ij,jk->ik", vec![a.into(), b.into()], c.view_mut(), 1.0, 0.0, None)?;