Skip to content

Commit 4503f14

Browse files
authored
Release v0.17.3 (#603)
1 parent 770983c commit 4503f14

3 files changed

Lines changed: 46 additions & 12 deletions

File tree

‎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.17.2"
11+
version: "0.17.3"
1212
doi: "10.5281/zenodo.8421339"
13-
date-released: "2026-09-20"
13+
date-released: "2026-10-30"
1414
url: "https://github.com/QuantumKitHub/TensorKit.jl"
1515
preferred-citation:
1616
type: article

‎Project.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "TensorKit"
22
uuid = "07d1fe3e-3e46-537d-9eac-e9e13d0d4cec"
3-
version = "0.17.2"
3+
version = "0.17.3"
44
authors = ["Jutho Haegeman, Lukas Devos"]
55

66
[workspace]

‎docs/src/Changelog.md‎

Lines changed: 43 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,32 +18,66 @@ When making changes to this project, please update the "Unreleased" section with
1818

1919
When releasing a new version, move the "Unreleased" changes to a new version section with the release date.
2020

21-
## [Unreleased](https://github.com/QuantumKitHub/TensorKit.jl/compare/v0.17.2...HEAD)
21+
## [Unreleased](https://github.com/QuantumKitHub/TensorKit.jl/compare/v0.17.3...HEAD)
2222

2323
### Added
2424

25-
- Re-export `NamedSector` and `@NamedSector` from TensorKitSectors
25+
### Changed
26+
27+
### Deprecated
28+
29+
### Removed
30+
31+
### Fixed
32+
33+
### Performance
34+
35+
## [0.17.3](https://github.com/QuantumKitHub/TensorKit.jl/compare/v0.17.2...v0.17.3) - 2026-10-30
36+
37+
### Added
38+
39+
- Batched SVD: `svd_full`, `svd_compact` and `svd_vals` now hand all blocks at once to MatrixAlgebraKit's ragged-batch drivers whenever the algorithm, driver and storage type support it, e.g. for GPU-backed tensors ([#567](https://github.com/QuantumKitHub/TensorKit.jl/pull/567))
40+
- Enzyme forward and reverse rules for factorizations (`qr`, `lq`, `eig`, `eigh`, `svd`, polar decompositions, and `project_hermitian`/`project_antihermitian`), including pushforward and pullback for `svd_vals`, with tests ([#464](https://github.com/QuantumKitHub/TensorKit.jl/pull/464))
41+
- Enzyme forward rules for `permute`, `transpose` and `braid` ([#573](https://github.com/QuantumKitHub/TensorKit.jl/pull/573))
42+
- ChainRules rule for `TensorMap(::DiagonalTensorMap)` ([#553](https://github.com/QuantumKitHub/TensorKit.jl/pull/553))
43+
- Re-export `NamedSector` and `@NamedSector` from TensorKitSectors ([#566](https://github.com/QuantumKitHub/TensorKit.jl/pull/566))
44+
- Support for MatrixAlgebraKit's `TruncationMultiplets` strategy, exported as `truncmultiplets`, which avoids truncating within multiplets of degenerate values, also when they are spread across different blocks ([#602](https://github.com/QuantumKitHub/TensorKit.jl/pull/602))
45+
- Precompilation workloads now cover planar contractions and traces for sector types without symmetric braiding, index manipulations of `AdjointTensorMap`s, and the remaining factorization entry points ([#557](https://github.com/QuantumKitHub/TensorKit.jl/pull/557), [#558](https://github.com/QuantumKitHub/TensorKit.jl/pull/558))
46+
- The test suite runs JET's package analysis on Julia 1.12 and later ([#570](https://github.com/QuantumKitHub/TensorKit.jl/pull/570))
2647

2748
### Changed
2849

29-
- Extend VectorInterface compat to include v0.7
30-
- Require TensorKitSectors v0.3.10
31-
- `@cached` can be used from other modules, such as package extensions, which then own the cache of the methods they add; these caches are shown with their module in `global_cache_info` after registration in `__init__` (internal)
32-
- The `TreeTransformer`s used in index manipulations are now constructed and cached per storagetype of the destination tensor, which is also a dispatch point for storage-specific transformers with their own cache (internal)
50+
- Extend VectorInterface compat to include v0.7 ([#560](https://github.com/QuantumKitHub/TensorKit.jl/pull/560))
51+
- Require TensorKitSectors v0.3.10 ([#566](https://github.com/QuantumKitHub/TensorKit.jl/pull/566))
52+
- Require MatrixAlgebraKit v0.6.13 ([#602](https://github.com/QuantumKitHub/TensorKit.jl/pull/602))
53+
- `norm` accepts scalar types that are not subtypes of `Real` ([#576](https://github.com/QuantumKitHub/TensorKit.jl/pull/576))
54+
- `@cached` can be used from other modules, such as package extensions, which then own the cache of the methods they add; these caches are shown with their module in `global_cache_info` after registration in `__init__` (internal) ([#556](https://github.com/QuantumKitHub/TensorKit.jl/pull/556))
55+
- The `TreeTransformer`s used in index manipulations are now constructed and cached per storagetype of the destination tensor, which is also a dispatch point for storage-specific transformers with their own cache (internal) ([#556](https://github.com/QuantumKitHub/TensorKit.jl/pull/556))
56+
- The Enzyme extension drops rules that Enzyme derives correctly by itself, marks the fusion tree transformer constructors as inactive, and respects runtime-inactive arguments in the `blas_contract!` rule ([#575](https://github.com/QuantumKitHub/TensorKit.jl/pull/575), [#574](https://github.com/QuantumKitHub/TensorKit.jl/pull/574), [#590](https://github.com/QuantumKitHub/TensorKit.jl/pull/590))
3357

3458
### Deprecated
3559

3660
### Removed
3761

62+
- The `DefaultAlgorithm` forwarding for `schur_full` and `schur_vals`, which have no tensor implementation ([#570](https://github.com/QuantumKitHub/TensorKit.jl/pull/570))
63+
3864
### Fixed
3965

40-
- Documentation build failing on TensorKitSectors doctests
66+
- `norm(t, Inf)` and `normalize!(t, Inf)` no longer rely on scalar indexing, so they work for GPU-backed tensors ([#586](https://github.com/QuantumKitHub/TensorKit.jl/pull/586))
67+
- Fixed the `promote_storagetype` call in the planar preprocessor ([#577](https://github.com/QuantumKitHub/TensorKit.jl/pull/577))
68+
- `@planar` with an explicit `order`, the `_extract_contraction_pairs` error message, a nonexistent `DimensionError` thrown in `linalg.jl` and malformed `MethodError`s in the `numout`/`numin` fallbacks: fixed various errors on untested paths reported by JET ([#570](https://github.com/QuantumKitHub/TensorKit.jl/pull/570))
69+
- Restored the custom Enzyme rule for `twist`, as Enzyme's own derivation segfaults on Julia 1.10 ([#559](https://github.com/QuantumKitHub/TensorKit.jl/pull/559))
70+
- The Enzyme rules for `permute` and `transpose` no longer alias the input when the permutation is trivial, such that all Enzyme rules also work on Julia 1.10 ([#579](https://github.com/QuantumKitHub/TensorKit.jl/pull/579))
71+
- Documentation build failing on TensorKitSectors doctests ([#566](https://github.com/QuantumKitHub/TensorKit.jl/pull/566))
4172

4273
### Performance
4374

44-
- Recoupling matrices are stored such that they can leverage BLAS, also for mixed complex tensor with real recoupling coefficients.
45-
- Constructing a `FusionTreeBlock` only takes the fusion product of the shorter side, and `fusionblocks` groups the cached fusion trees of the space instead of constructing a block for every combination of sectors (internal)
75+
- `add_transform!` for GPU-backed tensors is reimplemented as KernelAbstractions kernels that parallelize over the output data instead of over fusion tree blocks, for Abelian and general symmetries, making index manipulations of symmetric tensors on the GPU orders of magnitude faster ([#533](https://github.com/QuantumKitHub/TensorKit.jl/pull/533), [#509](https://github.com/QuantumKitHub/TensorKit.jl/pull/509))
76+
- Constructing a `FusionTreeBlock` only takes the fusion product of the shorter side, and `fusionblocks` groups the cached fusion trees of the space instead of constructing a block for every combination of sectors (internal) ([#581](https://github.com/QuantumKitHub/TensorKit.jl/pull/581))
77+
- Recoupling matrices are stored such that they can leverage BLAS, also for mixed complex tensor with real recoupling coefficients ([#556](https://github.com/QuantumKitHub/TensorKit.jl/pull/556))
4678
- Fusion tree block manipulations of (named) product sectors are computed as Kronecker products of the manipulations of their parts, splitting off the `UniqueFusion` sectors, such that they share the caches of the individual sectors ([#592](https://github.com/QuantumKitHub/TensorKit.jl/pull/592))
79+
- The TensorOperations ChainRules rules no longer copy or retain `C` when `β = Zero()`, as is the case for every tensor allocated by `@tensor` ([#555](https://github.com/QuantumKitHub/TensorKit.jl/pull/555))
80+
- The Enzyme `norm` rule reuses the cached primal and the `tr` rule avoids an unnecessary copy ([#554](https://github.com/QuantumKitHub/TensorKit.jl/pull/554))
4781

4882
## [0.17.2](https://github.com/QuantumKitHub/TensorKit.jl/compare/v0.17.1...v0.17.2) - 2026-09-20
4983

0 commit comments

Comments
 (0)