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
0.16.0 - 2025-12-08
Added
rrulefortransposeoperation (#319)- New functions for multifusion support:
unitspace,zerospace,leftunitspace,rightunitspace,isunitspace(#291) - Support for projections and orthogonal complements (#312)
Changed
- Improvements to the default printing of tensors, where only a (possibly compressed) representation of the (possibly truncated) list of diagonal blocks is printed. Use
blocks(t)andsubblocks(t)for a full inspection of the tensor data (#304, #322)) - Updated
left_orth,right_orth,left_nullandright_nullinterfaces for MatrixAlgebraKit v0.6 (#312) - Updated
ishermitianandisisometricimplementations (#312) - Sector functions now by default use
unitinstead ofone,isunitinstead ofisone, anddualinstead ofconj(#291) - Reworked TensorOperations implementation to use backend and allocator system (#311)
- Major documentation update/overhaul (#289)
- Added symmetric tensor tutorial as appendix (#316)
- Improved error messages throughout codebase (#309)
eigvalsandsvdvalsnow outputSectorVectorobjects, which do behave asAbstractVectorbut also have the option of iterating the blocks throughBase.pairs. (#324
Deprecated
Removed
- All deprecations from v0.15: old factorization function names (
leftorth,rightorth,tsvd,eig,eigh) - Old truncation strategy names (
truncdim,truncbelow) - Old factorization struct types (
OrthogonalFactorization) - Old constructor syntaxes and deprecated
rand*function names
Fixed
- Avoid unnecessary copy in
twistfor tensors with bosonic braiding (#305) - Small fixes and typos (#295)
eig_vals,svd_vals, etc now all outputSectorVectorobjects instead ofDiagonalTensorMaps, in line with how MatrixAlgebraKit returnsVectors instead ofDiagonals (#324
0.15.3 - 2025-10-30
Fixed
- Fixed typo in
show(::GradedSpace)(#308) - Updated printing of
ProductSpace{<:Any,0} - Added tests for show methods
0.15.2 - 2025-10-28
Added
subblocksiterator for easier inspection of tensor data (#304)
Changed
- Tensors no longer print their data by default, only their spaces. Use
blocks(t)orsubblocks(t)to inspect data (#304) - Updated compatibility to TensorKitSectors v0.3 (#290)
- Refactored test suite and split into groups (#298)
Fixed
- Fixed
TruncationIntersectionimplementation and test (#300) - Avoided unnecessary allocations in rrules for contractions and tensor products (#306)
0.15.1 - 2025-10-09
Fixed
- Small fixes and typo corrections (#295)
0.15.0 - 2025-10-03
Added
- MatrixAlgebraKit as new backend for tensor factorizations (#230)
foreachblock(f, t::AbstractTensorMap...)- uniform interface to iterate through tensor blockseig_truncandeigh_trunc- truncated eigenvalue decompositionsominus(and unicode⊖) - compute orthogonal complement of a space- Backend selection for factorizations - swap algorithms or implementations
Changed
left_orthandright_orthnow always output tensors with a single connecting spaceleft_orthandright_orthnow always have connecting space withisdual=false- Code formatter is now Runic.jl
Deprecated
- Factorization functions
leftorth,rightorth,tsvd,eig,eighin favor of MatrixAlgebraKit variants (left_orth,right_orth,svd_compact,eig_full,eigh_full) - Truncation strategies:
truncdim(usetruncrank) andtruncbelow(usetrunctol) OrthogonalFactorizationstructs (constructors deprecated to return equivalent MatrixAlgebraKit algorithm structs)
Removed
- Direct permute-and-factorize operations (incompatible with
permutevsbraiddistinction) Polardecomposition behavior forleft_orth/right_orth(useleft_polar/right_polarinstead forisposdefR factors)
0.14.0 - 2024-12-19
Added
DiagonalTensorMaptype for representing tensor maps with diagonal blocksreduceddim(V)function that sums up degeneracy dimensions for each sector- New index manipulation functions:
flip(t, i)insertleftunit(t, i)insertrightunit(t, i)removeunit(t, i)
Changed
- Singular values and eigenvalues now explicitly represented as
DiagonalTensorMapinstances - SVD truncation now guarantees smaller singular values are removed first, irrespective of sector quantum dimension
0.13.0 - 2024-11-24
Added
- Refactored
TensorMapconstructors to align with JuliaArrayconstructors - Convenience constructors:
ones,zeros,rand,randnfor tensors - TensorOperations v5 support
Changed
- Scalar type as parameter to
AbstractTensorMaptype:AbstractTensorMap{E, S, N₁, N₂} - Default way to create uninitialized tensors is now
TensorMap{E}(undef, codomain ← domain) - Behavior of
copyforBraidingTensorto properly instantiate aTensorMap - TensorKitSectors promoted to separate package
TensorMapdata structure now consists of single vector with blocks as viewsFusionTreevertices now only useIntlabels forGenericFusionsectors