v1.7.0
Breaking Changes
Circuit
: removetarget_size
in preparation for all contraction specifications to be encapsulated at the contract level (e.g. withcotengra
)- some TN drawing options (mainly arrow options) have changed due to the backend change detailed below.
Enhancements:
Multi tag drawing support:
- TensorNetwork.draw: use
quimb.schematic
for mainbackend="matplotlib"
drawing. Enabling:- multi tag coloring for single tensors
- arrows and labels on multi-edges
- better sizing of tensors using absolute units
- neater single tensor drawing, in 2D and 3D
- add quimb.schematic.Drawing from experimental submodule, add example docs at
schematic
. Add methodstext_between
,wedge
,line_offset
and other tweaks for future use by main TN drawing.
- upgrade all contraction to use
cotengra
as the backend Circuit
: allow any gate to be controlled by any number of qubits.Circuit
: support for parsingopenqasm2
specifications now with custom and nested gate definitions etc.- add
is_cyclic_x
,is_cyclic_y
) andis_cyclic_z
to TensorNetwork2D and TensorNetwork3D. - add TensorNetwork.compress_all_1d for compressing generic tensor networks that you promise have a 1D topology, without casting as a TensorNetwork1D.
- add MatrixProductState.from_fill_fn for constructing MPS from a function that fills the tensors.
- add Tensor.idxmin and Tensor.idxmax for finding the index of the minimum / maximum element.
- 2D and 3D classical partition function TN builders: allow output indices.
quimb.experimental.belief_propagation
: add various 1-norm/2-norm dense/lazy BP algorithms.
Bug fixes:
- fixed bug where an output index could be removed by squeezing when performing tensor network simplifications.
- Fix deprecation warnings by @king-p3nguin in #209
New Contributors
- @king-p3nguin made their first contribution in #209
Full Changelog: v1.6.0...v1.7.0