v1.8.0
Breaking Changes
- all singular value renormalization is turned off by default
TensorNetwork.compress_all
now defaults to using some local gauging
Enhancements:
-
add
quimb.tensor.tensor_1d_compress.py
with functions for compressing generic 1D tensor networks (with arbitrary local structure) using various methods. The methods are:- The 'direct' method:
tensor_network_1d_compress_direct
- The 'dm' (density matrix) method:
tensor_network_1d_compress_dm
- The 'zipup' method:
tensor_network_1d_compress_zipup
- The 'zipup-first' method:
tensor_network_1d_compress_zipup_first
- The 1 and 2 site 'fit' or sweeping method:
tensor_network_1d_compress_fit
- ... and some more niche methods for debugging and testing.
And can be accessed via the unified function
tensor_network_1d_compress
. Boundary contraction in 2D can now utilize any of these methods. - The 'direct' method:
-
add
quimb.tensor.tensor_arbgeom_compress.py
with functions for compressing arbitrary geometry tensor networks using various methods. The methods are:- The 'local-early' method:
tensor_network_ag_compress_local_early
- The 'local-late' method:
tensor_network_ag_compress_local_late
- The 'projector' method:
tensor_network_ag_compress_projector
- The 'superorthogonal' method:
tensor_network_ag_compress_superorthogonal
- The 'l2bp' method:
tensor_network_ag_compress_l2bp
And can be accessed via the unified function
tensor_network_ag_compress
. 1D compression can also fall back to these methods. - The 'local-early' method:
-
support PBC in
tn2d.contract_hotrg
,tn2d.contract_ctmrg
,tn3d.contract_hotrg
and the new functiontn3d.contract_ctmrg
. -
support PBC in
gen_2d_bonds
andgen_3d_bonds
, withcyclic
kwarg. -
support PBC in
TN2D_rand_hidden_loop
andTN3D_rand_hidden_loop
, withcyclic
kwarg. -
support PBC in the various base PEPS and PEPO construction methods.
-
add
tensor_network_apply_op_op
for applying 'operator' TNs to 'operator' TNs. -
tweak
tensor_network_apply_op_vec
for applying 'operator' TNs to 'vector' or 'state' TNs. -
add
tnvec.gate_with_op_lazy
method for applying 'operator' TNs to 'vector' or 'state' TNs like$x \rightarrow A x$ . -
add
tnop.gate_upper_with_op_lazy
method for applying 'operator' TNs to the upper indices of 'operator' TNs like$B \rightarrow A B$ . -
add
tnop.gate_lower_with_op_lazy
method for applying 'operator' TNs to the lower indices of 'operator' TNs like$B \rightarrow B A$ . -
add
tnop.gate_sandwich_with_op_lazy
method for applying 'operator' TNs to the upper and lower indices of 'operator' TNs like$B \rightarrow A B A^\dagger$ . -
unify all TN summing routines into
tensor_network_ag_sum
, which allows summing any two tensor networks with matching site tags and outer indices, replacing specific MPS, MPO, PEPS, PEPO, etc. summing routines. -
add
rand_symmetric_array
,rand_tensor_symmetric
TN2D_rand_symmetric
for generating random symmetric arrays, tensors and 2D tensor networks.
Bug fixes:
- fix scipy sparse monkey patch for scipy>=1.13 (#222)
- fix autoblock bug where connected sectors were not being merged (#223)
Full Changelog: v1.7.3...v1.8.0