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.
When releasing a new version, move the "Unreleased" changes to a new version section with the release date.
Unreleased
Added
Changed
environmentsnow follows a single positional contract for every state and operator kind:environments(below, operator, above, alg), wherealgis the environment algorithm (slot 4). The operator form requires an explicitabove. Auxiliary inputs are keyword-only:leftstart/rightstartfor finite and window environments, andlenvs/renvsfor window and quasiparticle environments. The two-argument formenvironments(below, above)(with two states) is reserved for the operator-free overlap environments. There is no two-argumentenvironments(below, operator)shorthand: a two-argument call is always the overlap, since the second argument cannot be disambiguated between a ket and an operator (undecidable for density matrices, where states and operators share a representation). (#436)transfer_spectrumnow computes the spectrum for all sectors of the transfer space at once, returning aTensorKit.SectorVectorthat can be indexed per sector. Thesectorkeyword is removed; a specific selection of sectors (with per-sector counts) can be requested by passinghowmanyas anAbstractDict/iterable ofsector => countpairs. Thebelowstate and the eigensolver algorithm are optional positional arguments, and the algorithm can be resolved per sector. The Krylov dimension adapts to the number of values requested in each sector, controlled by the newoversamplingandoversampling_factorkeywords. Accordingly,marek_gapandcorrelation_lengthnow return aTensorKit.SectorDictof per-sector results by default; passsector = ...to obtain a single sector's result as before.
Deprecated
Removed
Fixed
Performance
0.13.11 - 2026-05-04
Added
MultilineMPOspace getters (#407)
Changed
Refactored time-evolution MPO construction (#422)
Updated
TensorKitManifoldscompat to 0.8 (#421)Updated MatrixAlgebraKit algorithm specification (#418)
Generalized
calc_galerkintoAbstractMPS(#395)Removed explicit call to
InfiniteMPSin VUMPS (#396)Generalized
regauge!toAbstractVector(#393)
Fixed
Various fixes for compatibility with latest TensorKit versions (#416)
changebondsinconsistencies (#415)Small fixes for density operators (#409)
Tolerance on positivity test (#398)
Performance
- Benchmarks and AC/AC2 contraction improvements (#345)
0.13.10 - 2026-02-26
Added
expectation_valuefor local MPO tensors (#327)Base.copyfor MPS types now performs a deep copy (#387)
Changed
entropycan now also be called directly on a spectrum (singular value vector) (#377)Updated compat bounds to remove broken package versions
Fixed
- Fixed
Adaptextension for GPU support (#389)
0.13.9 - 2026-02-03
Added
LocalPreferences.tomlfile to ensureTensorOperationsproperly precompiles on testing infrastructureGeometryStyleandOperatorStyletraits for dispatching on finite/infinite geometry and operator types (#352, #354)Base.isfinitemethods for MPS types (#347)Bose-Hubbard example (#342)
WindowMPS example update (#350)
Multifusion category compatibility (#297)
Fixed
Dynamic tolerances yielded
NaNduring the initialization stage due to1 / sqrt(iter)whereiter = 0(#335)InfiniteMPOHamiltonianenvironments with low bond dimension and high Krylov dimension now are properly clamped (#335)Logical operator precedence in
getpropertyfunction (#346)Typo in
VUMPSSvdCut(#361)Typo in time formatting for logs (#336)
Domain/codomain of
MPODerivativeOperator(#370)In-place operations handled more carefully (#337)
Orthogonalization algorithms now use correct methods (#373)
Changed
The
changebonds(state, ::RandExpand)algorithm now no longer has to perform a truncated SVD to obtain the desired spaces, and instead sample the space directly and then generates a random isometry. This should be slightly more performant, but otherwise equivalent (#335)IDMRGrefactored to follow theIterativeSolverinterface and share code betweenIDMRGandIDMRG2(#348)Bumped compatibility for TensorKit 0.16 and MatrixAlgebraKit 0.6 (#365)
Removed
_left_orthand_right_orthworkarounds in favor of new orthogonalization methodsReduced allocation while computing Galerkin error (#366)
Updated
showmethods to reflect new TensorKit printing (#341)More informative errors for finite MPS (#367)
Minor documentation and docstring improvements (#363, #372, #371)
Deprecated
Removed
0.13.8 - 2024-10-31
See full history and previous releases on GitHub.