Skip to content

v3.0.0

Compare
Choose a tag to compare
@dgasmith dgasmith released this 12 Aug 17:46
4f340ec

This release moves opt_einsum to be backend agnostic while adding support
additional backends such as Jax and Autograd. Support for Python 2.7 has been dropped and Python 3.5 will become the new minimum version, a Python deprecation policy equivalent to NumPy's has been adopted.

New Features

  • (#78) A new random-optimizer has been implemented which uses Boltzmann weighting to explore alternative near-minimum paths using greedy-like schemes. This provides a fairly large path performance enhancements with a linear path time overhead.
  • (#78) A new PathOptimizer class has been implemented to provide a framework for building new optimizers. An example is that now custom cost functions can now be provided in the greedy formalism for building custom optimizers without a large amount of additional code.
  • (#81) The backend="auto" keyword has been implemented for contract allowing automatic detection of the correct backend to use based off provided tensors in the contraction.
  • (#88) Autograd and Jax support have been implemented.
  • (#96) Deprecates Python 2 functionality and devops improvements.

Enhancements

  • (#84) The contract_path function can now accept shape tuples rather than full tensors.
  • (#84) The contract_path automated path algorithm decision technology has been refactored to a standalone function.