Changelog
Contents
Changelog#
Release notes for quimb
.
v1.4.1 (unreleased)#
Enhancements
refactor contraction, allowing using cotengra directly
add
visualize()
for visualizing the actual data entries of an arbitrarily high dimensional tensor
Bug fixes:
fix force atlas 2 and weight_attr bug (GH126)
v1.4.0 (14th June 2022)#
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
simulationMany improvements to TN simplification
Make all tag and index operations deterministic
Add
tensor_network_sum()
,tensor_network_distance()
andfit()
Various memory and performance improvements
Various graph generators and TN builders
v1.3.0 (18th Feb 2020)#
Enhancements
Added time dependent evolutions to
Evolution
when integrating a pure state - see Time-Dependent Evolutions - as well as supportingLinearOperator
defined hamiltonians (PR40).Allow the
Evolution
callbackcompute=
to optionally access the Hamiltonian (PR49).Added
quimb.tensor.tensor_core.Tensor.randomize()
andquimb.tensor.tensor_core.TensorNetwork.randomize()
to randomize tensor and tensor network entries.Automatically squeeze tensor networks when rank-simplifying.
Add
compress_site()
for compressing around single sites of MPS etc.Add
MPS_ghz_state()
andMPS_w_state()
for building bond dimension 2 open boundary MPS reprentations of those states.Various changes in conjunction with autoray to improve the agnostic-ness of tensor network operations with respect to the backend array type.
Add
new_bond()
on top ofquimb.tensor.tensor_core.Tensor.new_ind()
andquimb.tensor.tensor_core.Tensor.expand_ind()
for more graph orientated construction of tensor networks, see Graph Orientated Tensor Network Creation.Add the
fsim()
gate.Make the parallel number generation functions use new numpy 1.17+ functionality rather than randomgen (which can still be used as the underlying bit generator) (PR50)
TN: rename
contraction_complexity
tocontraction_width()
.TN: update
quimb.tensor.tensor_core.TensorNetwork.rank_simplify()
, to handle hyper-edges.TN: add
quimb.tensor.tensor_core.TensorNetwork.diagonal_reduce()
, to automatically collapse all diagonal tensor axes in a tensor network, introducing hyper edges.TN: add
quimb.tensor.tensor_core.TensorNetwork.antidiag_gauge()
, to automatically flip all anti-diagonal tensor axes in a tensor network allowing subsequent diagonal reduction.TN: add
quimb.tensor.tensor_core.TensorNetwork.column_reduce()
, to automatically identify tensor axes with a single non-zero column, allowing the corresponding index to be cut.TN: add
quimb.tensor.tensor_core.TensorNetwork.full_simplify()
, to iteratively perform all the above simplifications in a specfied order until nothing is left to be done.TN: add
num_tensors
andnum_indices
attributes, shownum_indices
in__repr__
.TN: various improvements to the pytorch optimizer (PR34)
TN: add some built-in 1D quantum circuit ansatzes:
circ_ansatz_1D_zigzag()
,circ_ansatz_1D_brickwork()
, andcirc_ansatz_1D_rand()
.TN: add parametrized tensors
PTensor
and so trainable, TN based quantum circuits – see Tensor Network Training of Quantum Circuits.
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 (6th June 2019)#
Enhancements
Added
kraus_op()
for general, noisy quantum operationsAdded
projector()
for constructing projectors from observablesAdded
measure()
for measuring and collapsing quantum statesAdded
cprint()
pretty printing states in computational basisAdded
simulate_counts()
for simulating computational basis countsTN: Add
quimb.tensor.tensor_core.TensorNetwork.rank_simplify()
TN: Add
'split-gate'
gate modeTN: Add
TNOptimizer
for tensorflow based optimization of arbitrary, contstrained tensor networks.TN: Add
connect()
to conveniently set a shared index for tensorsTN: make many more tensor operations agnostic of the array backend (e.g. numpy, cupy, tensorflow, …)
TN: allow
align_TN_1D()
to take an MPO as the first argumentTN: add
build_sparse()
TN: add
quimb.tensor.tensor_core.Tensor.unitize()
andquimb.tensor.tensor_core.TensorNetwork.unitize()
to impose unitary/isometric constraints on tensors specfied using theleft_inds
kwargMany updates to tensor network quantum circuit (
quimb.tensor.circuit.Circuit
) simulation including:49-qubit depth 30 circuit simulation example Quantum Circuit Simulation
Add
from quimb.gates import *
as shortcut to importX, Z, CNOT, ...
.Add
U_gate()
for parametrized arbitrary single qubit unitary
Bug fixes: