EinExprs is a Julia package that provides EinExprs: symbolic expressions representing a Einstein summation. These summations may be used to represent contraction paths of large tensor networks.

It is a complete redesign of OptimizedEinsum, which indeed was a Julia fork of opt_einsum. It powers Tenet but can easily be adapted to work with other packages.

  1. Einsum Expressions
  2. Optimizers
  3. Resource counting
  4. Slicing
  5. Alternatives

Planned features

  • Optimizers
    • Hypergraph Partitioning
    • Branch & Bound
    • Dynamic Programming
  • Subtree reconfiguration
  • Resource counting
    • Array structure-aware analysis
  • Execution planning
  • Permutation order optimization
  • Compilation