Expand description
Multi-tensor contraction with optimal contraction order.
This module provides functions to contract multiple tensors efficiently using einsum optimization via the tensorbackend (tenferro-backed implementation).
This module works with concrete types (DynIndex, TensorDynLen) only.
§Main Functions
contract_multi: Contracts tensors, handling disconnected components via outer productcontract_connected: Contracts tensors that must form a connected graph
§Diag Tensor Handling
Diagonal tensors are materialized as dense native operands for contraction, so numeric einsum labels must keep uncontracted logical axes distinct. Diagonal/structured equality metadata is propagated separately onto the result when the contraction leaves equal axes behind.
Structs§
- Axis
Union Find - Union-Find data structure for grouping axis IDs.
- Contraction
Options - Options for multi-tensor contraction.
Functions§
- build_
diag_ union - Build a union-find structure from a collection of tensors.
- collect_
sizes - Collect dimension sizes for remapped IDs.
- contract_
connected - Contract multiple tensors that form a connected graph.
- contract_
connected_ with_ options - Contract a connected tensor network with additional options.
- contract_
multi - Contract multiple tensors into a single tensor, handling disconnected components.
- contract_
multi_ owned - Contract multiple owned tensors into a single tensor.
- contract_
multi_ with_ options - Contract multiple tensors into a single tensor with additional options.
- print_
and_ reset_ contract_ profile - Print and clear the aggregated multi-tensor contraction profile.
- remap_
output_ ids - Remap output IDs using the union-find structure.
- remap_
tensor_ ids - Remap tensor indices using the union-find structure.
- reset_
contract_ profile - Reset the aggregated multi-tensor contraction profile.