Skip to main content

TraceContextEinsumExt

Trait TraceContextEinsumExt 

Source
pub trait TraceContextEinsumExt {
    // Required methods
    fn einsum(
        &mut self,
        inputs: &[TraceValue],
        subscripts: &str,
    ) -> Result<TraceValue>;
    fn einsum_subscripts(
        &mut self,
        inputs: &[TraceValue],
        subscripts: &EinsumSubscripts,
    ) -> Result<TraceValue>;
    fn einsum_with(
        &mut self,
        inputs: &[TraceValue],
        subscripts: &str,
        optimize: EinsumOptimize,
    ) -> Result<TraceValue>;
    fn einsum_subscripts_with(
        &mut self,
        inputs: &[TraceValue],
        subscripts: &EinsumSubscripts,
        optimize: EinsumOptimize,
    ) -> Result<TraceValue>;
}
Expand description

Backend-neutral einsum tracing methods for [TraceContext].

Each method records one semantic einsum extension operation. Contraction path materialization and provider selection remain compiler/runtime work.

§Examples

use tenferro_einsum::TraceContextEinsumExt;
use tenferro_ops::dim_expr::DimExpr;
use tenferro_runtime::program::ProgramInputSpec;
use tenferro_runtime::TraceContext;
use tenferro_tensor::DType;

let matrix = || {
    ProgramInputSpec::new(
        DType::F64,
        [DimExpr::Const(2), DimExpr::Const(2)],
    )
};
let mut trace = TraceContext::new();
let lhs = trace.input(matrix()).unwrap();
let rhs = trace.input(matrix()).unwrap();
let output = trace.einsum(&[lhs, rhs], "ij,jk->ik").unwrap();
let graph = trace.finish(&[output]).unwrap();
assert_eq!(graph.program().operations().count(), 1);

Required Methods§

Source

fn einsum( &mut self, inputs: &[TraceValue], subscripts: &str, ) -> Result<TraceValue>

Trace textual einsum notation using the default optimizer policy.

§Errors

Returns Error::InvalidSubscripts for malformed notation, Error::Validation for invalid input metadata, Error::Planning for an invalid optimizer policy, or Error::Runtime when semantic program construction fails.

Source

fn einsum_subscripts( &mut self, inputs: &[TraceValue], subscripts: &EinsumSubscripts, ) -> Result<TraceValue>

Trace parsed einsum notation using the default optimizer policy.

§Errors

Returns Error::Validation for invalid input metadata, Error::Planning for an invalid optimizer policy, or Error::Runtime when semantic program construction fails.

Source

fn einsum_with( &mut self, inputs: &[TraceValue], subscripts: &str, optimize: EinsumOptimize, ) -> Result<TraceValue>

Trace textual einsum notation with an explicit optimizer policy.

§Errors

Returns Error::InvalidSubscripts for malformed notation, Error::Validation for invalid input metadata, Error::Planning for an invalid optimizer policy, or Error::Runtime when semantic program construction fails.

Source

fn einsum_subscripts_with( &mut self, inputs: &[TraceValue], subscripts: &EinsumSubscripts, optimize: EinsumOptimize, ) -> Result<TraceValue>

Trace parsed einsum notation with an explicit optimizer policy.

§Errors

Returns Error::Validation for invalid input metadata, Error::Planning for an invalid optimizer policy, or Error::Runtime when semantic program construction fails.

Implementations on Foreign Types§

Source§

impl TraceContextEinsumExt for TraceContext

Source§

fn einsum( &mut self, inputs: &[TraceValue], subscripts: &str, ) -> Result<TraceValue>

Source§

fn einsum_subscripts( &mut self, inputs: &[TraceValue], subscripts: &EinsumSubscripts, ) -> Result<TraceValue>

Source§

fn einsum_with( &mut self, inputs: &[TraceValue], subscripts: &str, optimize: EinsumOptimize, ) -> Result<TraceValue>

Source§

fn einsum_subscripts_with( &mut self, inputs: &[TraceValue], subscripts: &EinsumSubscripts, optimize: EinsumOptimize, ) -> Result<TraceValue>

Implementors§