Changelog

Release notes for quimb.

v1.8.2 (2024-06-12)

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 (PR #238)

  • fix some windows + numba CI issues.

  • approx_spectral_function add plotting and tracking

  • add dispatching to various tensor primitives to allow overriding

v1.8.1 (2024-05-06)

Enhancements:

Bug fixes:

v1.8.0 (2024-04-10)

Breaking Changes

Enhancements:

Bug fixes:

  • fix scipy sparse monkey patch for scipy>=1.13 (GH 222)

  • fix autoblock bug where connected sectors were not being merged (GH 223)

v1.7.3 (2024-02-08)

Enhancements:

  • qu.randn: support dist="rademacher".

  • support dist and other randn options in various TN builders.

Bug fixes:

  • restore fallback (to scipy.linalg.svd with driver=’gesvd’) behavior for truncated SVD with numpy backend.

v1.7.2 (2024-01-30)

Enhancements:

Bug fixes:

  • removed import of deprecated numba.generated_jit decorator.

v1.7.1 (2024-01-30)

Enhancements:

Bug fixes:

  • fix bug in kruas_op when operator spanned multiple subsystems (GH 214)

  • fix bug in qr_stabilized when the diagonal of R has significant imaginary parts.

  • fix bug in quantum discord computation when the state was diagonal (GH 217)

v1.7.0 (2023-12-08)

Breaking Changes

  • Circuit : remove target_size in preparation for all contraction specifications to be encapsulated at the contract level (e.g. with cotengra)

  • some TN drawing options (mainly arrow options) have changed due to the backend change detailed below.

Enhancements:

  • TensorNetwork.draw: use quimb.schematic for main backend="matplotlib" drawing. Enabling:

    1. multi tag coloring for single tensors

    2. arrows and labels on multi-edges

    3. better sizing of tensors using absolute units

    4. neater single tensor drawing, in 2D and 3D

Bug fixes:

  • fixed bug where an output index could be removed by squeezing when performing tensor network simplifications.

v1.6.0 (2023-09-10)

Breaking Changes

  • Quantum circuit RZZ definition corrected (angle changed by -1/2 to match qiskit).

Enhancements:

Bug fixes:

  • fix gauge size check for some backends

v1.5.1 (2023-07-28)

Enhancements:

  • add MPS_COPY().

  • add ‘density matrix’ and ‘zip-up’ MPO-MPS algorithms.

  • add drop_tags option to tensor_contract()

  • compress_all_simple(), allow cutoff.

  • add structure checking debug methods: Tensor.check() and TensorNetwork.check().

  • add several direction contraction utility functions: get_symbol(), inds_to_eq() and array_contract().

Bug fixes:

  • Circuit: use stack for more robust parametrized gate generation

  • fix for gate_with_auto_swap() for i > j.

  • fix bug where calling tn.norm() would mangle indices.

v1.5.0 (2023-05-03)

Enhancements

Bug fixes:

v1.4.2 (2022-11-28)

Enhancements

v1.4.1 (2022-11-28)

Enhancements

  • unify much functionality from 1D, 2D and 3D into general arbitrary geometry class quimb.tensor.tensor_arbgeom.TensorNetworkGen

  • refactor contraction, allowing using cotengra directly

  • add visualize() for visualizing the actual data entries of an arbitrarily high dimensional tensor

  • add Gate class for more robust tracking and manipulation of gates in quantum Circuit simulation

  • tweak TN drawing style and layout

  • tweak default gauging options of compressed contraction

  • add compute_hierarchical_grouping()

  • add as_network()

  • add inds_size()

  • add get_hyperinds()

  • add outer_size()

  • improve group_inds()

  • refactor tensor decompositiona and ‘isometrization’ methods

  • begin supporting pytree specifications in TNOptimizer, e.g. for constants

  • add experimental submodule for new sharing features

  • register tensor and tensor network objects with jax pytree interface (PR 150)

  • update CI infrastructure

Bug fixes:

  • fix force atlas 2 and weight_attr bug (GH 126)

  • allow unpickling of PTensor objects (GH 128, PR 131)

v1.4.0 (2022-06-14)

Enhancements

  • Add 2D tensor network support and algorithms

  • Add 3D tensor network infrastructure

  • Add arbitrary geometry quantum state infrastructure

  • Many changes to TNOptimizer

  • Many changes to TN drawing

  • Many changes to Circuit simulation

  • Many improvements to TN simplification

  • Make all tag and index operations deterministic

  • Add tensor_network_sum(), tensor_network_distance() and fit()

  • Various memory and performance improvements

  • Various graph generators and TN builders

v1.3.0 (2020-02-18)

Enhancements

Bug fixes:

  • Fix consistency of fidelity() by making the unsquared version the default for the case when either state is pure, and always return a real number.

  • Fix a bug in the 2D system example for when j != 1.0

  • Add environment variable QUIMB_NUMBA_PAR to set whether numba should use automatic parallelization - mainly to fix travis segfaults.

  • Make cache import and initilization of petsc4py and slepc4py more robust.

v1.2.0 (2019-06-06)

Enhancements

Bug fixes:

  • Fix pkron for case len(dims) == len(inds) (GH 17, PR 18).

  • Fix qarray printing for older numpy versions

  • Fix TN quantum circuit bug where Z and X rotations were swapped

  • Fix variable bond MPO building (GH 22) and L=2 DMRG

  • Fix norm(X, 'trace') for non-hermitian matrices

  • Add autoray as dependency (GH 21)