einsum_with_subscripts_into

Function einsum_with_subscripts_into 

Source
pub fn einsum_with_subscripts_into<T: Scalar + HasAlgebra>(
    subscripts: &Subscripts,
    operands: &[&Tensor<T>],
    alpha: T,
    beta: T,
    output: &mut Tensor<T>,
) -> Result<()>
Expand description

Execute einsum with pre-built Subscripts, accumulating into an existing output.

Computes output = alpha * einsum(operands) + beta * output. Avoids re-parsing the subscript string on each call.

§Examples

use tenferro_einsum::{einsum_with_subscripts_into, Subscripts};
use tenferro_tensor::{Tensor, MemoryOrder};
use tenferro_device::LogicalMemorySpace;

let subs = Subscripts::new(&[&[0, 1], &[1, 2]], &[0, 2]);
let mut c = Tensor::<f64>::zeros(&[3, 5], LogicalMemorySpace::MainMemory, MemoryOrder::ColumnMajor);

// C = 1.0 * (A @ B) + 0.0 * C
einsum_with_subscripts_into(&subs, &[&a, &b], 1.0, 0.0, &mut c).unwrap();

§Errors

Returns an error if tensor shapes are incompatible with the subscripts or the output shape does not match.