v1.11.0
Breaking Changes
- move belief propagation to
quimb.tensor.belief_propagation - calling
tn.contract()when an non-zero value has been accrued intotn.exponentnow automatically re-absorbs that exponent. - binary tensor operations that would previously have errored now will align and broadcast
Enhancements:
Tensor: make binary operations (+, -, *, /, **) automatically align and broadcast indices. This would previously error.MatrixProductState.measure: add aseedkwarg- belief propagation, implement DIIS (direct inversion in the iterative subspace)
- belief propagation, unify various aspects such as message normalization and distance.
- belief propagation, add a
plotmethod. - belief propagation, add a
contract_everyoption. - HV1BP: vectorize both contraction and message initialization
- add
qu.plot_multi_series_zoomfor plotting multiple series with a zoomed inset, useful for various convergence plots such as BP - add
infooption totn.gauge_all_simplefor tracking extra information such as number of iterations and max gauge diffs Tensor.gate: addtransposedoptionTensorNetwork.contract: addstrip_exponentoption for return the mantissa and exponent (log10) separately. Compatible withcontract_tags,contract_cumulative,contract_compressedsub modes.tensor_split: addmatrix_svalsoption, ifTrueany returned singular values are put into the diagonal of a matrix (by default,False, they are returned as a vector).- add
Tensor.new_ind_pair_diagfor expanding an existing index into a pair of new indices, such that the diagonal of the new tensor on those indices is the old tensor. TNOptimizer: add 'cautious' ADAMTensorNetwork.pop_tensor: allowtidor tags to be specified.- add an example notebook for converting hyper tensor networks to normal tensor networks, for approximate contraction - https://quimb.readthedocs.io/en/latest/examples/ex_htn_to_tn_2d.html#example-htn-to-2d
- Add SX and SXDG gates by @kevinsung in #277
- Add XXPLUSYY and XXMINUSYY gates by @kevinsung in #279
- Added progbar to qsim, and openqasm2 by @edenian in #288
quimb.experimental.operatorbuilder: fix MPO building for congested operators (#296 and #301), allow arbitrary dtype (#289). Fix building of sparse and matrix representations for non-translationally symmetric operators and operators with trivial (all identity) terms.
Bug fixes:
- fix
MatrixProductState.measureforcupybackend arrays (#276). - fix
linalg.expmdispatch (#275) - fix 'dm' 1d compress method for disconnected subgraphs
- fix docs source lookup in
quimb.tensormodule - fix raw gate copying in
Circuit(#285)
New Contributors
Full Changelog: v1.10.0...v1.11.0