From f46c3e5cbaf1c81757dedc61f9e40591f15bfd58 Mon Sep 17 00:00:00 2001 From: Lukas Devos Date: Fri, 3 Oct 2025 14:03:54 -0400 Subject: [PATCH 1/3] Update changelog for deprecations and changes --- Changelog.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Changelog.md b/Changelog.md index 3ea7a515e..52d0d5873 100644 --- a/Changelog.md +++ b/Changelog.md @@ -28,8 +28,8 @@ This version introduces [MatrixAlgebraKit](https://github.com/QuantumKitHub/Matr - Backend selection for factorizations - swap algorithms or implementations #### Changed -- Factorization functions `leftorth`, `rightorth`, `tsvd`, `eig`, `eigh` deprecated in favor of MatrixAlgebraKit variants (`left_orth`, `right_orth`, `tsvd`, `eig`, `eigh`) -- Truncation strategies now use MatrixAlgebraKit names: `truncrank` (replaces `truncdim`), `truncbelow` (replaces `trunctol`) +- Factorization functions `leftorth`, `rightorth`, `tsvd`, `eig`, `eigh` deprecated in favor of MatrixAlgebraKit variants (`left_orth`, `right_orth`, `svd_compact`, `eig_full`, `eigh_full`) +- Truncation strategies now use MatrixAlgebraKit names: `truncrank` (replaces `truncdim`) and `trunctol` (replaces `truncbelow`) - `left_orth` and `right_orth` now always output tensors with a single connecting space - `left_orth` and `right_orth` now always have connecting space with `isdual=false` - code formatter is now [Runic.jl](https://github.com/fredrikekre/Runic.jl) From ac3a7b15bca65f61e7e9b4f124920a5331db8c70 Mon Sep 17 00:00:00 2001 From: Lukas Devos Date: Fri, 3 Oct 2025 14:21:01 -0400 Subject: [PATCH 2/3] update README --- README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/README.md b/README.md index 82d0f79bb..e4ae5d4e2 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,49 @@ A Julia package for large-scale tensor computations, with a hint of category the [aqua-img]: https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg [aqua-url]: https://github.com/JuliaTesting/Aqua.jl +## Release notes for v0.15 + +TensorKit v0.15 consists of a (mostly internal) rewrite of the tensor factorizations to make +use of [MatrixAlgebraKit.jl](https://github.com/QuantumKitHub/MatrixAlgebraKit.jl). This +comes with a number of performance improvements, but also some breaking changes: + +1. The full interface of `MatrixAlgebraKit` decompositions is now supported, such that we + now also support truncated eigenvalue decompositions via `eig_trunc` and `eigh_trunc`, + and have dedicated functions for `qr_compact`/`lq_compact`, `qr_full`/`lq_full`, + `qr_null`/`lq_null` and `left_polar`/`right_polar`. + +2. The previous factorization interface is now deprecated, and users should migrate from the + deprecated functions to their MatrixAlgebraKit counterparts: + - `leftorth`/`rightorth` -> `left_orth`/`right_orth` + - `leftnull`/`rightnull` -> `left_null`/`right_null` + - `tsvd` -> `svd_compact`, `svd_full` and `svd_trunc` + - `eig` -> `eig_full` and `eig_trunc` + - `eigh` -> `eigh_full` and `eigh_trunc` + +3. The truncation interface has some improvements, in particular by having support for both + absolute and relative tolerances, as well as a new `truncfilter` strategy to pass a + filter function. `trunctol`, `truncrank` and `truncerror` replace the old `truncbelow`, + `truncdim` and `truncerr`. + +4. The factorizations pullbacks have been simplified, with a lot of boilerplate code removed + and out-sourced to MatrixAlgebraKit.jl + +## Release notes for v0.14 + +TensorKit v0.14 adds the `DiagonalTensorMap` type and provides some extra index functionality: + +1. The `DiagonalTensorMap` is used to represent tensors that only contain diagonal entries, + and map a single input `ElementarySpace` to the same output `ElementarySpace`. This is + also the default output type for the matrix of singular and eigenvalues. + +2. `flip(t, i)` changes the duality flag of the `i`th index of `t`, in such a way that + flipping a pair of contracted indices in an `@tensor` contraction does not alter the + result + +3. `insertleftunit(t, i)` and `insertrightunit(t, i)` can be used to insert a trivial unit + space to the left or right of an index `i`, whereas `removeunit(t, i)` undoes that + operation. + ## Release notes for v0.13 TensorKit v0.13 brings a number of performance improvements, but also comes with a number of From c5c1a7f43bb8f2e2ec88d7b576f12244ab3e06c2 Mon Sep 17 00:00:00 2001 From: Lukas Devos Date: Fri, 3 Oct 2025 14:22:02 -0400 Subject: [PATCH 3/3] update citation version --- CITATION.cff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index ff6ce70cd..8eb3682f4 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -8,9 +8,9 @@ authors: given-names: "Jutho" orcid: "https://orcid.org/0000-0002-0858-291X" title: "TensorKit.jl" -version: "0.14.11" +version: "0.15.0" doi: "10.5281/zenodo.8421339" -date-released: "2025-07-18" +date-released: "2025-10-03" url: "https://github.com/QuantumKitHub/TensorKit.jl" preferred-citation: type: article