**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 other `sphinx` extensions.
- add the `'adabelief'` optimizer to
:class:`~quimb.tensor.optimize.TNOptimizer` as 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 new ``backend='plotly'`` can also be used for 2D interactive plots.
- Update :func:`~quimb.tensor.tensor_builder.HTN_from_cnf` to 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.combine` for 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_stabilized` bug for strictly upper
triangular R factors.
**Full Changelog**: https://github.com/jcmgray/quimb/compare/1.4.2...v1.5.0