Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Guidelines for updating this changelog
When making changes to this project, please update the "Unreleased" section with your changes under the appropriate category:
- Added for new features.
- Changed for changes in existing functionality.
- Deprecated for soon-to-be removed features.
- Removed for now removed features.
- Fixed for any bug fixes.
- Performance for performance improvements.
When releasing a new version, move the "Unreleased" changes to a new version section with the release date.
Unreleased
Added
Changed
Deprecated
Removed
Fixed
Performance
0.8.0 - 2026-06-05
Added
FullPullbackandTruncPullbackto specify pullbacks using a full untruncated or only truncated decomposition respectively (#382)FixedPointGradienttype, containing a specific solver for solving the fixed-point gradient linear problem (#386)- CTMRG benchmark suite (#384)
- Rotation of
LocalCircuit(#349) LocalCircuitoperator type, alongside refactor ofLocalOperatoroperator types (#347)- N-site Simple Update (#339)
- C4v CTMRG support, including QR-CTMRG variant (#321, #329)
- Belief propagation gauge fixing, with bipartite specialization and support for purified iPEPO (#223, #318, #319)
Changed
- Bump VectorInterface compat to include v0.6 (#389)
- Make checks on rotation and reflection symmetry when using C4v CTMRG into warnings (#385)
- Allow unsorted site indices in
LocalCircuit(#387) - Periodic indexing improvements (#377)
- Rename algorithm symbols (#376)
- Update decomposition handling (#364)
- Return
info.convergedflag andinfo.convergence_errorinleading_boundarynamed tuple (#365) - Improve Vidal gauge conversion and CTM bond env for PEPO (#348)
- Rename
bondenv_futobondenv_ctm(#343) - Refactor simple update / reorganize trotter and apply_gate code (#338, #346). Each term of the input Hamiltonian
LocalOperatoris now exponentiated individually when constructing the Trotter gates in the resultingLocalCircuit. - Move
info.truncation_errorandinfo.condition_numberinto theinfo.contraction_metricsnamed tuple forleading_boundaryandfixedpoint(#337) fixedpointimprovements; relaxenv₀type restriction inselect_algorithm(#337, #345)- Use MatrixAlgebraKit SVD pullbacks (#335)
- Bump TensorKit compat to 0.16 (#314)
- Make
SUWeightaxis order definite (#315) - Bump OptimKit.jl compatibility to v0.4 (#307)
- Improve bond truncation algorithms (#303). In particular, the 3-leg reduced bond tensors now follows the leg order convention of an MPS.
Removed
FullEighPullback,TruncEighPullback,FullSVDPullback,TruncSVDPullbackandQRPullbacktypes, in favor of more generic pullback specification across algorithms (#382)LinSolverandEigSolvertypes, anditerschemekeyword for specifying the style of and solver for fixed-point differentiation (#386):diffgaugedifferentiation mode, also for eigh-based C4v CTMRG (#334, #370)- Unused implementations of
LinearAlgebramethods forCTRMGEnvandInfinitePEPS(#307)
Fixed
- Fix undefined
dirvariable in error message inTensorMap(::EnlargedCorner)(#392) - Ensure MPSKit overloads accept all keywords to intercept all dispatches (#374)
FixedSpaceTruncationfor simple update (#360)- Stack overflow in
renormalize_southwest_corner(#344) - Broken gradients for C4v eigh-CTMRG (#333)
- CTMRG contraction inconsistencies (#327)
- Typo in
SimpleUpdateinfo (#313) - Typo in
edge_transfer_right(#310) - MPS cluster truncation with standard virtual arrows (#309)
- Small fixes for
InfiniteSquareNetworkandInfinitePartitionFunction(#306) - Zero gate returned by
get_gateterm(#300)
Performance
- Improve simple update performance (#361)
- Improve efficiency of bond truncation (#366)
0.7.0 - 2025-11-17
Added
- Real time and finite-temperature evolution functionality for simple update
- Correlator for mixed state
InfinitePEPO SUWeighttoCTMRGEnvconversion (asInfinitePEPSenvironment)- Simple update for PEPO (including 3-site version)
- Single-layer and double-layer PEPO reduced density matrix
spacetypemethod forInfinitePartitionFunction- Support for
SU2Irrepsymmetry inj1_j2_model
Changed
- A unified interface for Trotter-based time evolution algorithms. The old
su_iter,simpleupdatefunctions should be replaced bytimestep,time_evolverespectively - Default fixed-point gradient algorithm changed to
:EigSolver - BoundaryMPS methods now have their own custom transfer functions, avoiding a double conjugation and twist issues for fermions
physicalspaceand related functions now correctly handle periodic indexing for infinite networks- Updated compatibility with TensorKit v0.15
- Runic formatter
Removed
InfiniteWeightPEPSandmirror_antidiag- Support for integer space specifiers in state and environment constructors
- Removed redefinition of
tensorexpr - Support for dual physical spaces for non-bosonic symmetries
Fixed
- Add unit normalization of the half and full infinite environments before the projector computation, fixing an issue with the gradient accuracy
- Fix sporadic test timeouts when running variational optimization after simple update for the Heisenberg model by switching to a
GMRES-based gradient solver - Rotation of iPEPO is now done correctly
- Fix
rotl90,rotr90androt180forLocalOperator - Fix XXZ model convention
- Fix
add_physical_chargefor fermionic operators - Fix
maxiterbehavior for fallback gradient linear solver - Fix gauge fixing in
:fixedmode for non-uniform unit cells from full SVD
Performance
- Avoid
@autooptfor partition function calculations - Multithreaded scheduler now correctly taken into account for the reverse rules.