Opt-einsum

Latest version: v3.3.0

Safety actively analyzes 613461 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

3.3.0

Adds a ``object`` backend for optimized contractions on arbitrary Python objects.

New Features
- (145) Adds a ``object`` based backend so that ``contract(backend='object')`` can be used on arbitrary objects such as SymPy symbols.

Enhancements
- (140) Better error messages when the requested ``contract`` backend cannot be found.
- (141) Adds a check with RandomOptimizers to ensure the objects are not accidentally reused for different contractions.
- (149) Limits the ``remaining`` category for the ``contract_path`` output to only show up to 20 tensors to prevent issues with the quadratically scaling memory requirements and the number of print lines for large contractions.

3.2.1

Bug Fixes
- (131) Fixes an einstein subscript error message to point to the correct value.
- (135) Lazily loads JAX similar to other backends.

3.2.0

Small fixes for the ``dp`` path and support for a new mars backend.

New Features
- (109) Adds mars backend support.

Enhancements
- (110) New ``auto-hq`` and ``'random-greedy-128'`` paths.
- (119) Fixes several edge cases in the ``dp`` path.

Bug fixes
- (127) Fixes an issue where Python 3.6 features are required while Python 3.5 is ``opt_einsum``'s stated minimum version.

3.1.0

Adds a new dynamic programming algorithm to the suite of paths.

3.0.1

Alters `setup.py` to correctly state that `opt_einsum` requires Python 3.5+. This will now correctly effect PyPI and other pip mirror downloads, v3.0.0 will be removed from PyPI to prevent further issues.

3.0.0

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.

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.