Public API
Operation entry points
Current operation entry points:
einsum(builder) for primal tensorseinsum_ad(builder) for AD tensors- Full linalg builder surface for primal tensors:
svd,qr,lu,eigen,lstsq,cholesky,solveinv,det,slogdet,eig,pinv,matrix_expsolve_triangular,norm
- Full linalg builder surface for AD tensors:
svd_ad,qr_ad,lu_ad,eigen_ad,lstsq_ad,cholesky_ad,solve_adinv_ad,det_ad,slogdet_ad,eig_ad,pinv_ad,matrix_exp_adsolve_triangular_ad,norm_ad
Implementation status:
einsum: implemented withtenferro-einsumeinsum_ad: implemented with AD mode propagation- linalg builders: implemented with
tenferro-linalgprimary APIs
einsum_ad uses the following mode precedence:
- if any operand is
Reverse, output isReverse - else if any operand is
Forward, output isForward - else output is
Primal
Context model
Builder .run() resolves a thread-local default runtime:
set_default_runtimewith_default_runtimeRuntimeContext(Cpu,Cuda,Rocm)
Current execution is CPU-backed; unsupported runtime/op combinations return explicit runtime errors.
Extension interfaces
TensorKernel: numeric kernel boundaryDifferentiable: abstraction over values that can exposeAdValueOpRule: operation-level AD rules (rrule,frule,hvp)
Documentation rule
Every public signature is documented with a minimal usage example in rustdoc.