Skip to main content

einsum

Function einsum 

Source
pub fn einsum<B: TensorBackend>(
    engine: &mut Engine<B>,
    inputs: &[&TracedTensor],
    subscripts: &str,
) -> Result<TracedTensor>
Expand description

N-ary einsum with default FLOPS-first optimization.

Builds a lazy computation graph. Call .eval(&mut engine) on the result to trigger execution.

§Examples

use tenferro::einsum::einsum;
use tenferro::engine::Engine;
use tenferro::traced::TracedTensor;

// Matrix multiply
let c = einsum(&mut engine, &[&a, &b], "ij,jk->ik");

// 3-tensor chain multiply
let d = einsum(&mut engine, &[&a, &b, &c], "ij,jk,kl->il");

// Inner product
let s = einsum(&mut engine, &[&x, &y], "i,i->");

// Row sum (unary)
let r = einsum(&mut engine, &[&a], "ij->i");

// Hadamard product
let h = einsum(&mut engine, &[&a, &b], "ij,ij->ij");

// Outer product
let o = einsum(&mut engine, &[&x, &y], "i,j->ij");