pub fn single_tensor_einsum<T>(
src: &StridedView<'_, T>,
input_ids: &[char],
output_ids: &[char],
size_dict: Option<&HashMap<char, usize>>,
) -> Result<StridedArray<T>>Expand description
Execute a single-tensor einsum operation (5-step pipeline).
Given input with axis IDs input_ids and desired output_ids:
- Identify repeated input indices -> diagonal_view (stride trick, zero-copy)
- Identify indices to sum out -> reduce_axis
- Permute to output order -> copy_into
- Repeat: broadcast to NEW dimensions (output labels not in input, via size_dict)
- Duplicate: repeated output indices (e.g. “i->ii”, diagonal write)
Pass size_dict to specify sizes for output indices not present in the input.