v1.5.0
Enhancements
- refactor 'isometrize' methods including new "cayley", "householder" and
"torch_householder" methods. See :func:quimb.tensor.decomp.isometrize. - add :meth:
~quimb.tensor.tensor_core.TensorNetwork.compute_reduced_factor
and :meth:~quimb.tensor.tensor_core.TensorNetwork.insert_compressor_between_regions
methos, for some RG style algorithms. - add the
mode="projector"option for 2D tensor network contractions - add HOTRG style coarse graining and contraction in 2D and 3D. See
:meth:~quimb.tensor.tensor_2d.TensorNetwork2D.coarse_grain_hotrg,
:meth:~quimb.tensor.tensor_2d.TensorNetwork2D.contract_hotrg,
:meth:~quimb.tensor.tensor_3d.TensorNetwork3D.coarse_grain_hotrg, and
:meth:~quimb.tensor.tensor_3d.TensorNetwork3D.contract_hotrg, - add CTMRG style contraction for 2D tensor networks:
:meth:~quimb.tensor.tensor_2d.TensorNetwork2D.contract_ctmrg - add 2D tensor network 'corner double line' (CDL) builders:
:func:~quimb.tensor.tensor_builder.TN2D_corner_double_line - update the docs to use the
furo <https://pradyunsg.me/furo/>_ theme,
myst_nb <https://myst-nb.readthedocs.io/en/latest/>_ for notebooks, and
several othersphinxextensions. - add the
'adabelief'optimizer to
:class:~quimb.tensor.optimize.TNOptimizeras well as a quick plotter:
:meth:~quimb.tensor.optimize.TNOptimizer.plot - add initial 3D plotting methods for tensors networks (
TensorNetwork.draw(dim=3, backend='matplotlib3d')or
TensorNetwork.draw(dim=3, backend='plotly')
). The newbackend='plotly'can also be used for 2D interactive plots. - Update :func:
~quimb.tensor.tensor_builder.HTN_from_cnfto handle more
weighted model counting formats. - Add :func:
~quimb.tensor.tensor_builder.cnf_file_parse - Add :func:
~quimb.tensor.tensor_builder.random_ksat_instance - Add :func:
~quimb.tensor.tensor_builder.TN_from_strings - Add :func:
~quimb.tensor.tensor_builder.convert_to_2d - Add :func:
~quimb.tensor.tensor_builder.TN2D_rand_hidden_loop - Add :func:
~quimb.tensor.tensor_builder.convert_to_3d - Add :func:
~quimb.tensor.tensor_builder.TN3D_corner_double_line - Add :func:
~quimb.tensor.tensor_builder.TN3D_rand_hidden_loop - various optimizations for minimizing computational graph size and
construction time. - add
'lu','polar_left'and'polar_right'methods to
:func:~quimb.tensor.tensor_core.tensor_split. - add experimental arbitrary hamilotonian MPO building
- :class:
~quimb.tensor.tensor_core.TensorNetwork: allow empty constructor
(i.e. no tensors representing simply the scalar 1) - :meth:
~quimb.tensor.tensor_core.TensorNetwork.drop_tags: allow all tags to
be dropped - tweaks to compressed contraction and gauging
- add jax, flax and optax example
- add 3D and interactive plotting of tensors networks with via plotly.
- add pygraphiviz layout options
- add :meth:
~quimb.tensor.tensor_core.TensorNetwork.combinefor unified
handling of combining
tensor networks potentially with structure - add HTML colored pretty printing of tensor networks for notebooks
- add
quimb.experimental.cluster_update.py
Bug fixes:
- fix :func:
~quimb.tensor.decomp.qr_stabilizedbug for strictly upper
triangular R factors.
Full Changelog: 1.4.2...v1.5.0