Skip to content

Commit 43ebfc4

Browse files
lkdvosJutho
andauthored
Bump v0.16 + Remove old deprecations (#321)
* remove factorization struct deprecations * remove truncation deprecations * remove factorization deprecations * remove deprecate.jl file * bump v0.16 * Add author * remove PackageExtensionCompat * remove empty file * remove unused chainrule * re-export `eigen(!)` again * Update Changelog and add to the docs * attempt to stabilize some AD tests * update CITATION file * further relax tests * change seed * update dates --------- Co-authored-by: Jutho Haegeman <jutho.haegeman@ugent.be>
1 parent 7c68aec commit 43ebfc4

File tree

12 files changed

+170
-370
lines changed

12 files changed

+170
-370
lines changed

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ authors:
88
given-names: "Jutho"
99
orcid: "https://orcid.org/0000-0002-0858-291X"
1010
title: "TensorKit.jl"
11-
version: "0.15.0"
11+
version: "0.16.0"
1212
doi: "10.5281/zenodo.8421339"
13-
date-released: "2025-10-03"
13+
date-released: "2025-12-05"
1414
url: "https://github.com/QuantumKitHub/TensorKit.jl"
1515
preferred-citation:
1616
type: article

Changelog.md

Lines changed: 0 additions & 122 deletions
This file was deleted.

Project.toml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
name = "TensorKit"
22
uuid = "07d1fe3e-3e46-537d-9eac-e9e13d0d4cec"
3-
authors = ["Jutho Haegeman"]
4-
version = "0.15.3"
3+
authors = ["Jutho Haegeman, Lukas Devos"]
4+
version = "0.16.0"
55

66
[deps]
77
LRUCache = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637"
88
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
99
MatrixAlgebraKit = "6c742aac-3347-4629-af66-fc926824e5e4"
1010
OhMyThreads = "67456a42-1dca-4109-a031-0a68de7e3ad5"
11-
PackageExtensionCompat = "65ce6f38-6b18-4e1d-a461-8949797d7930"
1211
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
1312
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
1413
ScopedValues = "7e506255-f358-4e82-b7e4-beb19740aa63"
@@ -37,7 +36,6 @@ LRUCache = "1.0.2"
3736
LinearAlgebra = "1"
3837
MatrixAlgebraKit = "0.6.0"
3938
OhMyThreads = "0.8.0"
40-
PackageExtensionCompat = "1"
4139
Printf = "1"
4240
Random = "1"
4341
SafeTestsets = "0.1"

docs/make.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ pages = [
2222
],
2323
"Index" => ["index/index.md"],
2424
"Appendix" => ["appendix/symmetric_tutorial.md", "appendix/categories.md"],
25+
"Changelog" => "Changelog.md",
2526
]
2627

2728
mathengine = MathJax3(

docs/src/Changelog.md

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## Guidelines for updating this changelog
9+
10+
When making changes to this project, please update the "Unreleased" section with your changes under the appropriate category:
11+
12+
- **Added** for new features.
13+
- **Changed** for changes in existing functionality.
14+
- **Deprecated** for soon-to-be removed features.
15+
- **Removed** for now removed features.
16+
- **Fixed** for any bug fixes.
17+
- **Performance** for performance improvements.
18+
19+
When releasing a new version, move the "Unreleased" changes to a new version section with the release date.
20+
21+
## [Unreleased](https://github.com/QuantumKitHub/TensorKit.jl/compare/v0.16.0...HEAD)
22+
23+
## [0.16.0](https://github.com/QuantumKitHub/TensorKit.jl/releases/tag/v0.16.0) - 2025-12-05
24+
25+
### Added
26+
27+
- `rrule` for `transpose` operation ([#319](https://github.com/QuantumKitHub/TensorKit.jl/pull/319))
28+
- New functions for multifusion support: `unitspace`, `zerospace`, `leftunitspace`, `rightunitspace`, `isunitspace` ([#291](https://github.com/QuantumKitHub/TensorKit.jl/pull/291))
29+
- Support for projections and orthogonal complements ([#312](https://github.com/QuantumKitHub/TensorKit.jl/pull/312))
30+
31+
### Changed
32+
33+
- Tensors now no longer print their data by default, only their spaces. Use `blocks(t)` or `subblocks(t)` to inspect data ([#304](https://github.com/QuantumKitHub/TensorKit.jl/pull/304))
34+
- Updated `left_orth`, `right_orth`, `left_null` and `right_null` interfaces for MatrixAlgebraKit v0.6 ([#312](https://github.com/QuantumKitHub/TensorKit.jl/pull/312))
35+
- Updated `ishermitian` and `isisometric` implementations ([#312](https://github.com/QuantumKitHub/TensorKit.jl/pull/312))
36+
- Sector functions now by default use `unit` instead of `one`, `isunit` instead of `isone`, and `dual` instead of `conj` ([#291](https://github.com/QuantumKitHub/TensorKit.jl/pull/291))
37+
- Reworked TensorOperations implementation to use backend and allocator system ([#311](https://github.com/QuantumKitHub/TensorKit.jl/pull/311))
38+
- Major documentation update/overhaul ([#289](https://github.com/QuantumKitHub/TensorKit.jl/pull/289))
39+
- Added symmetric tensor tutorial as appendix ([#316](https://github.com/QuantumKitHub/TensorKit.jl/pull/316))
40+
- Improved error messages throughout codebase ([#309](https://github.com/QuantumKitHub/TensorKit.jl/pull/309))
41+
42+
### Deprecated
43+
44+
### Removed
45+
46+
- All deprecations from v0.15: old factorization function names (`leftorth`, `rightorth`, `tsvd`, `eig`, `eigh`)
47+
- Old truncation strategy names (`truncdim`, `truncbelow`)
48+
- Old factorization struct types (`OrthogonalFactorization`)
49+
- Old constructor syntaxes and deprecated `rand*` function names
50+
51+
### Fixed
52+
53+
- Avoid unnecessary copy in `twist` for tensors with bosonic braiding ([#305](https://github.com/QuantumKitHub/TensorKit.jl/pull/305))
54+
- Small fixes and typos ([#295](https://github.com/QuantumKitHub/TensorKit.jl/pull/295))
55+
56+
## [0.15.3](https://github.com/QuantumKitHub/TensorKit.jl/releases/tag/v0.15.3) - 2025-10-30
57+
58+
### Fixed
59+
60+
- Fixed typo in `show(::GradedSpace)` ([#308](https://github.com/QuantumKitHub/TensorKit.jl/pull/308))
61+
- Updated printing of `ProductSpace{<:Any,0}`
62+
- Added tests for show methods
63+
64+
## [0.15.2](https://github.com/QuantumKitHub/TensorKit.jl/releases/tag/v0.15.2) - 2025-10-28
65+
66+
### Added
67+
68+
- `subblocks` iterator for easier inspection of tensor data ([#304](https://github.com/QuantumKitHub/TensorKit.jl/pull/304))
69+
70+
### Changed
71+
72+
- Tensors no longer print their data by default, only their spaces. Use `blocks(t)` or `subblocks(t)` to inspect data ([#304](https://github.com/QuantumKitHub/TensorKit.jl/pull/304))
73+
- Updated compatibility to TensorKitSectors v0.3 ([#290](https://github.com/QuantumKitHub/TensorKit.jl/pull/290))
74+
- Refactored test suite and split into groups ([#298](https://github.com/QuantumKitHub/TensorKit.jl/pull/298))
75+
76+
### Fixed
77+
78+
- Fixed `TruncationIntersection` implementation and test ([#300](https://github.com/QuantumKitHub/TensorKit.jl/pull/300))
79+
- Avoided unnecessary allocations in rrules for contractions and tensor products ([#306](https://github.com/QuantumKitHub/TensorKit.jl/pull/306))
80+
81+
## [0.15.1](https://github.com/QuantumKitHub/TensorKit.jl/releases/tag/v0.15.1) - 2025-10-09
82+
83+
### Fixed
84+
85+
- Small fixes and typo corrections ([#295](https://github.com/QuantumKitHub/TensorKit.jl/pull/295))
86+
87+
## [0.15.0](https://github.com/QuantumKitHub/TensorKit.jl/releases/tag/v0.15.0) - 2025-10-03
88+
89+
### Added
90+
91+
- [MatrixAlgebraKit](https://github.com/QuantumKitHub/MatrixAlgebraKit.jl) as new backend for tensor factorizations ([#230](https://github.com/QuantumKitHub/TensorKit.jl/pull/230))
92+
- `foreachblock(f, t::AbstractTensorMap...)` - uniform interface to iterate through tensor blocks
93+
- `eig_trunc` and `eigh_trunc` - truncated eigenvalue decompositions
94+
- `ominus` (and unicode ``) - compute orthogonal complement of a space
95+
- Backend selection for factorizations - swap algorithms or implementations
96+
97+
### Changed
98+
99+
- `left_orth` and `right_orth` now always output tensors with a single connecting space
100+
- `left_orth` and `right_orth` now always have connecting space with `isdual=false`
101+
- Code formatter is now [Runic.jl](https://github.com/fredrikekre/Runic.jl)
102+
103+
### Deprecated
104+
105+
- Factorization functions `leftorth`, `rightorth`, `tsvd`, `eig`, `eigh` in favor of MatrixAlgebraKit variants (`left_orth`, `right_orth`, `svd_compact`, `eig_full`, `eigh_full`)
106+
- Truncation strategies: `truncdim` (use `truncrank`) and `truncbelow` (use `trunctol`)
107+
- `OrthogonalFactorization` structs (constructors deprecated to return equivalent MatrixAlgebraKit algorithm structs)
108+
109+
### Removed
110+
111+
- Direct permute-and-factorize operations (incompatible with `permute` vs `braid` distinction)
112+
- `Polar` decomposition behavior for `left_orth`/`right_orth` (use `left_polar`/`right_polar` instead for `isposdef` R factors)
113+
114+
## [0.14.0](https://github.com/QuantumKitHub/TensorKit.jl/releases/tag/v0.14.0) - 2024-12-19
115+
116+
### Added
117+
118+
- `DiagonalTensorMap` type for representing tensor maps with diagonal blocks
119+
- `reduceddim(V)` function that sums up degeneracy dimensions for each sector
120+
- New index manipulation functions:
121+
- `flip(t, i)`
122+
- `insertleftunit(t, i)`
123+
- `insertrightunit(t, i)`
124+
- `removeunit(t, i)`
125+
126+
### Changed
127+
128+
- Singular values and eigenvalues now explicitly represented as `DiagonalTensorMap` instances
129+
- SVD truncation now guarantees smaller singular values are removed first, irrespective of sector quantum dimension
130+
131+
## [0.13.0](https://github.com/QuantumKitHub/TensorKit.jl/releases/tag/v0.13.0) - 2024-11-24
132+
133+
### Added
134+
135+
- Refactored `TensorMap` constructors to align with Julia `Array` constructors
136+
- Convenience constructors: `ones`, `zeros`, `rand`, `randn` for tensors
137+
- TensorOperations v5 support
138+
139+
### Changed
140+
141+
- Scalar type as parameter to `AbstractTensorMap` type: `AbstractTensorMap{E, S, N₁, N₂}`
142+
- Default way to create uninitialized tensors is now `TensorMap{E}(undef, codomain ← domain)`
143+
- Behavior of `copy` for `BraidingTensor` to properly instantiate a `TensorMap`
144+
- TensorKitSectors promoted to separate package
145+
- `TensorMap` data structure now consists of single vector with blocks as views
146+
- `FusionTree` vertices now only use `Int` labels for `GenericFusion` sectors

ext/TensorKitChainRulesCoreExt/constructors.jl

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -106,18 +106,6 @@ function ChainRulesCore.rrule(
106106
return TensorKit.copy_oftype(t, T), copy_oftype_pullback
107107
end
108108

109-
function ChainRulesCore.rrule(
110-
::typeof(TensorKit.permutedcopy_oftype), t::AbstractTensorMap, T::Type{<:Number}, p::Index2Tuple
111-
)
112-
project = ProjectTo(t)
113-
function permutedcopy_oftype_pullback(Δt)
114-
invp = TensorKit._canonicalize(TupleTools.invperm(linearize(p)), t)
115-
return NoTangent(), project(TensorKit.permute(unthunk(Δt), invp)), NoTangent(),
116-
NoTangent()
117-
end
118-
return TensorKit.permutedcopy_oftype(t, T, p), permutedcopy_oftype_pullback
119-
end
120-
121109
function ChainRulesCore.rrule(::typeof(Base.convert), T::Type{<:Array}, t::AbstractTensorMap)
122110
A = convert(T, t)
123111
function convert_pullback(ΔA)

ext/TensorKitChainRulesCoreExt/factorizations.jl

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/TensorKit.jl

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ export FusionTree
2828
export IndexSpace, HomSpace, TensorSpace, TensorMapSpace
2929
export AbstractTensorMap, AbstractTensor, TensorMap, Tensor # tensors and tensor properties
3030
export DiagonalTensorMap, BraidingTensor
31-
export TruncationScheme
3231
export SpaceMismatch, SectorMismatch, IndexError # error types
3332

3433
# Export general vector space methods
@@ -84,6 +83,7 @@ export left_orth, right_orth, left_null, right_null,
8483
exp, exp!,
8584
eigh_full!, eigh_full, eigh_trunc!, eigh_trunc, eigh_vals!, eigh_vals,
8685
eig_full!, eig_full, eig_trunc!, eig_trunc, eig_vals!, eig_vals,
86+
eigen, eigen!,
8787
ishermitian, project_hermitian, project_hermitian!,
8888
isantihermitian, project_antihermitian, project_antihermitian!,
8989
isisometric, isunitary, project_isometric, project_isometric!,
@@ -148,8 +148,6 @@ import Base.Meta
148148

149149
using Random: Random, rand!, randn!
150150

151-
using PackageExtensionCompat
152-
153151
# Auxiliary files
154152
#-----------------
155153
include("auxiliary/auxiliary.jl")
@@ -248,13 +246,4 @@ include("planar/macros.jl")
248246
@specialize
249247
include("planar/planaroperations.jl")
250248

251-
# deprecations: to be removed in version 1.0 or sooner
252-
include("auxiliary/deprecate.jl")
253-
254-
# Extensions
255-
# ----------
256-
function __init__()
257-
return @require_extensions
258-
end
259-
260249
end

0 commit comments

Comments
 (0)