Changelog#

v0.5.7 (unreleased)#

Enhancements

  • add ContractionTree.plot_flat: a new method for plotting the contraction tree as a flat diagram showing all indices on every intermediate (without requiring any graph layouts), which is useful for visualizing and understanding small contractions.

  • HyperGraph.plot: support showing hyper outer indices, multi-edges, and automatic unique coloring of nodes and indices (to match plot_flat).

  • add ContractionTree.restore_ind for ‘unslicing’ or ‘unprojecting’ previously removed indices.

v0.5.6 (2023-12-07)#

Bug fixes

  • fix a very rare but very infuriating bug related somehow to ReusableHyperOptimizer not being thread-safe and returning the wrong tree on github actions

v0.5.5 (2023-11-15)#

Enhancements

  • HyperOptimizer: by default simply warn if an individual trial fails, rather than raising an exception. This is to ensure rare failures do not spoil an entire optimization run. The behavior can be controlled with the on_trial_error argument.

Bug fixes

  • fixed bug in greedy optimizer that produced negative scores and otherwise inaccurate scores.

  • fixed bug for contraction with many inputs and also preprocessing steps

v0.5.4 (2023-10-17)#

Bug fixes

  • the auto and auto-hq optimizers are now safe to run under multi-threading.

v0.5.3 (2023-10-16)#

  • einsum, einsum_tree and einsum_expression: add support for all numpy input formats, including interleaved indices and ellipses.

  • remove some hidden opt_einsum dependence (via a PathOptimizer method)

v0.5.2 (2023-10-13)#

v0.5.1 (2023-10-3)#

v0.5.0 (2023-09-26)#