Skip to content

Releases: jcmgray/quimb

v1.11.2

31 Jul 00:24

Choose a tag to compare

Enhancements:

Bug fixes:

  • fixes for MPS and MPO constructors when L=1, (#314)
  • tensor splitting with absorb="left" now correctly marks left indices.
  • tn.isel: fix bug when value could not be compared to string "r"
  • truncated svd, make n_chi comparison more robust to different backends

Full Changelog: v1.11.1...v1.11.2

v1.11.1

21 Jun 00:08

Choose a tag to compare

Enhancements:

  • add create_bond to tensor_canonize_bond and tensor_compress_bond for optionally creating a new bond between two tensors if they don't already share one. Add as a flag to TensorNetwork1DFlat.compress and related functions (#294).
  • add ensure_bonds_exist for ensuring that all bonds in a 1D flat tensor network exist. Use this in the permute_arrays methods and optionally in the expand_bond_dimension method.
  • tn.draw(): permit empty network, and allow color=True to automatically color all tags.
  • tn.add_tag: add a record: Optional[dict] kwarg, to allow for easy rewinding of temporary tags without tracking the actual networks.
  • add qu.plot as a quick wrapper for calling matplotlib.pyplot.plot with the quimb style.
  • quimb.schematic: add zorder_delta kwarg for fine adjustments to layering of objects in approximately the same position.
  • operatorbuilder: big performance improvements and fixes for building matrix representations including Z2 symmetry. Add default symmetry and sector options that can be overridden at build time. Add lazy (slow, matrix free) 'apply' method. Add pauli_decompose transformation. Add experimental PEPO builder for nearest neighbor operators. Add unit tests.

Bug fixes:

Full Changelog: v1.11.0...v1.11.1

v1.11.0

15 May 00:06

Choose a tag to compare

Breaking Changes

  • move belief propagation to quimb.tensor.belief_propagation
  • calling tn.contract() when an non-zero value has been accrued into tn.exponent now automatically re-absorbs that exponent.
  • binary tensor operations that would previously have errored now will align and broadcast

Enhancements:

Bug fixes:

  • fix MatrixProductState.measure for cupy backend arrays (#276).
  • fix linalg.expm dispatch (#275)
  • fix 'dm' 1d compress method for disconnected subgraphs
  • fix docs source lookup in quimb.tensor module
  • fix raw gate copying in Circuit (#285)

New Contributors

Full Changelog: v1.10.0...v1.11.0

v1.10.0

18 Dec 23:49

Choose a tag to compare

Enhancements

  • tensor network fitting: add method="tree" for when ansatz is a tree - tensor_network_fit_tree
  • tensor network fitting: fix method="als" for complex dtype networks
  • tensor network fitting: allow method="als" to use a iterative solver suited to much larger tensors, by default a custom conjugate gradient implementation.
  • tensor_network_distance and fitting: support hyper indices explicitly via output_inds kwarg
  • add tn.make_overlap and tn.overlap for computing the overlap between two tensor networks, $\langle O |T \rangle$, with explicit handling of outer indices to address hyper networks. Add output_inds to tn.norm and tn.make_norm also, as well as the squared kwarg.
  • replace all numba based paralellism (prange and parallel vectorize) with explicit thread pool based parallelism. Should be more reliable and no need to set NUMBA_NUM_THREADS anymore. Remove env var QUIMB_NUMBA_PAR.
  • Circuit: add dtype and convert_eager options. dtype specifies what the computation should be performed in. convert_eager specifies whether to apply this (and any to_backend calls) as soon as gates are applied (the default for MPS circuit simulation) or just prior to contraction (the default for exact contraction simulation).
  • tn.full_simplify: add check_zero (by default set of "auto") option which explicitly checks for zero tensor norms when equalizing norms to avoid log10(norm) resulting in -inf or nan. Since it creates a data dependency that breaks e.g. jax tracing, it is optional.
  • schematic.Drawing: add shorten kwarg to line drawing and curve drawing and examples to the docs.
  • TensorNetwork: add .backend and .dtype_name properties.

PRs:

  • Circuit: add default dtype and convert_eager options by @jcmgray in #273
  • add fit(method="tree") and fix ALS for complex TNs by @jcmgray in #274

Full Changelog: v1.9.0...v1.10.0

v1.9.0

20 Nov 02:50

Choose a tag to compare

Breaking Changes

  • renamed MatrixProductState.partial_trace and MatrixProductState.ptr to MatrixProductState.partial_trace_to_mpo to avoid confusion with other partial_trace methods that usually produce a dense matrix.

Enhancements:

v1.8.4

20 Jul 21:00

Choose a tag to compare

What's Changed

  • fix MPS sample handling of RNG seed by @kevinsung in #248
  • fix bug in applying MPO lazily to MPS (#246)

New Contributors

Full Changelog: v1.8.3...v1.8.4

v1.8.3

10 Jul 23:20

Choose a tag to compare

Enhancements:

Full Changelog: v1.8.2...v1.8.3

v1.8.2

12 Jun 21:42

Choose a tag to compare

Enhancements:

  • TNOptimizer can now accept an arbitrary pytree (nested combination of dicts, lists, tuples, etc. with TensorNetwork, Tensor or raw array_like objects as the leaves) as the target object to optimize.
  • TNOptimizer can now directly optimize Circuit objects, returning a new optimized circuit with updated parameters.
  • Circuit: add .copy(), .get_params() and .set_params() interface methods.
  • Update generic TN optimizer docs.
  • add tn.gen_inds_loops for generating all loops of indices in a TN.
  • add tn.gen_inds_connected for generating all connected sets of indices in a TN.
  • make SVD fallback error catching more generic (by @mlxd in #238)
  • fix some windows + numba CI issues.
  • approx_spectral_function add plotting and tracking
  • add dispatching to various tensor primitives to allow overriding

New Contributors

  • @mlxd made their first contribution in #238

Full Changelog: v1.8.1...v1.8.2

v1.8.1

07 May 06:13

Choose a tag to compare

Enhancements:

Bug fixes:

New Contributors

Full Changelog: v1.8.0...v1.8.1

v1.8.0

10 Apr 21:55

Choose a tag to compare

Breaking Changes

Enhancements:

Bug fixes:

  • fix scipy sparse monkey patch for scipy>=1.13 (#222)
  • fix autoblock bug where connected sectors were not being merged (#223)

Full Changelog: v1.7.3...v1.8.0