Skip to content

Releases: QuantumKitHub/TensorKit.jl

v0.16.0

10 Dec 00:21
412a45c

Choose a tag to compare

TensorKit v0.16.0

Diff since v0.15.3

Release notes:

We are pleased to announce TensorKit.jl v0.16.0! This release expands multifusion support, makes accessing diagonal data easier, streamlines tensor printing, and refreshes our TensorOperations backend while tightening documentation and error messaging.

🎉 Highlights

  • Multifusion utilities: unitspace, zerospace, leftunitspace, rightunitspace, isunitspace (#291)
  • Projections and orthogonal complements across tensors (#312)
  • rrule for transpose to improve AD coverage (#319)
  • TensorOperations backend/allocator rework for clearer extensibility (#311)
  • First part of a major docs overhaul plus symmetric tensor tutorial (#289, #316)
  • Changes to tensor showing/printing methods, with (part of) tensor block data being shown (#322)
  • SectorVector <: AbstractVector as output type for singular and eigenvalues (#324)

✨ New Features

  • Multifusion spaces now expose unitspace, zerospace, leftunitspace, rightunitspace, isunitspace to reason about units and zero objects (#291)
  • Projections and orthogonal complements for tensors (#312)
  • ChainRules rrule for transpose (#319)

🔧 Improvements

  • left_orth, right_orth, left_null, right_null, ishermitian, and isisometric aligned with MatrixAlgebraKit v0.6 interfaces (#312)
  • svd_vals, eig_vals and eigh_vals now output a "vector" instead of a diagonal tensor. (#325)
  • TensorOperations reworked around backend and allocator abstractions for cleaner extensibility (#311)
  • Clearer error messages across the codebase (#309)
  • Changes to tensor showing/printing methods, with (part of) tensor block data being shown (#322)

🐛 Fixes

  • Avoid unnecessary copy in twist for bosonic braiding tensors (#305)
  • Miscellaneous fixes and typos (#295)

📦 Dependencies

  • MatrixAlgebraKit v0.6-compatible interfaces for factorization helpers
  • TensorOperations backend and allocator better integrated

📚 Documentation

  • Broad documentation refresh with improved navigation (#289)
  • Added symmetric tensor tutorial in the appendix (#316)

🙏 Acknowledgments

Thanks to everyone who contributed PRs, issues, and feedback for this release.

🔗 Links

Merged pull requests:

Closed issues:

  • right_null errors when trunc is provided (#313)
  • truncation error with rtol (#314)

v0.15.3

30 Oct 23:14
bbeb8e5

Choose a tag to compare

TensorKit v0.15.3

Diff since v0.15.2

Merged pull requests:

v0.15.2

28 Oct 13:30
30f440e

Choose a tag to compare

TensorKit v0.15.2

Diff since v0.15.1

TensorKit v0.15.2 contains some changes with respect to how objects are printed. By default, tensors now no longer print their data, and only print their spaces. To inspect the data of a tensor t, blocks(t) and subblocks(t) can be used to print and alter the data in different forms.

We've also updated our compatibility to TensorKitSectors v0.3, which entails some internal consistency naming changes and improvements but should otherwise not affect users. This does provide a step towards full support of multi-fusion categories in TensorKit (Shout-out to @borisdevos for this work).

This patch release also contains fixes and performance improvements:

  • The issue with multiple truncation schemes (TruncationIntersection) has been solved (#300)
  • Some unnecessary allocations in the reverse rules for contractions and tensor products have been avoided (#306)
  • The test suite was refactored and split into several groups to reduce the total CI runtime and improve local selective running of the tests (#298)

Merged pull requests:

Closed issues:

  • Verbosity of Base.show for TensorMap (#301)
  • fusionblockstructure with argument TensorMapSpace is not defined (#302)
  • fusionblockstructure with argument of the type TensorMapSpace error (#303)

v0.15.1

09 Oct 14:11
4ab4707

Choose a tag to compare

TensorKit v0.15.1

Diff since v0.15.0

Small fixes and some typos.

Merged pull requests:

v0.15.0

03 Oct 18:43
36bf5a4

Choose a tag to compare

TensorKit v0.15.0

Diff since v0.14.11

TensorKit v0.15 consists of a (mostly internal) rewrite of the tensor factorizations to make
use of MatrixAlgebraKit.jl.
This rewrite is important for code organization and maintenance reasons, but has some additional benefits.
Firstly, MatrixAlgebraKit provides a convenient interface for working with truncated factorizations, such that TensorKit will now support an updated range of truncation schemes, not only for the singular value decompositions, but also for the eigenvalue decompositions, a feature that was previously missing.
Secondly, the improved interface of MatrixAlgebraKit allows us to cut back on some unnecessary intermediate allocations when working with symmetric tensors, so we expect a (minor) increase in performance.
Lastly, the code is now structured to facilitate supporting new features without having to do major code alterations. In particular, this should pave the way towards supporting GPU-backed TensorMaps.

To facilitate this, there are however some deprecations and some breaking changes:

🚀 New Features & Enhancements

  • Trucated eigenvalue decompositions: eig_trunc and eigh_trunc
  • Extended truncation schemes: trunctol and truncerror now support relative and absolute tolerances, new truncfilter strategy to pass a filter function
  • Factorization pullbacks: pullback functions are now implemented through MatrixAlgebraKit, eliminating the need to define ChainRulesCore extensions for them. Additionally, we now also support differentiating through nullspace and polar decompositions.

📋 Public API Changes and breaking changes

  • Deprecated factorization functions:

    • leftorth -> left_orth
    • rightorth -> right_orth
    • tsvd -> svd_compact and svd_trunc
    • eig -> eig_full
    • eigh -> eigh_full and eigh_trunc
  • Deprecated factorization structs: OrthogonalFactorization and its subtypes (QR, QRpos, LQ, SVD, SDD, ...) have been removed in favor of their MatrixAlgebraKit counterparts, but their constructors are still supported in deprecated mode to patch through to the correct MatrixAlgebraKit.Algorithm.

  • Truncation schemes: truncdim has been deprecated to truncrank, truncbelow has been deprecated to trunctol and truncerr has been deprecated to truncerror.


For further details and information, check out the updated docs, the changelog, or the diff for this release: v0.14.11...v0.15.0

Merged pull requests:

v0.14.11

19 Sep 09:40
ec78a85

Choose a tag to compare

TensorKit v0.14.11

Diff since v0.14.10

  • Added new absorb(!) to move data from one tensor into another of a different shape.
  • Small fixes and clarifications of the docs
  • Exported the deligneproduct non-unicode function

Merged pull requests:

  • Add absorb for putting (part of) the contents of one tensor in another (#283) (@lkdvos)
  • Make truncspace explanation more specific (#284) (@leburgel)
  • Export non-unicode deligneproduct (#287) (@lkdvos)
  • Bump version to v0.14.11 (#288) (@leburgel)

v0.14.10

08 Sep 22:15
980fe55

Choose a tag to compare

TensorKit v0.14.10

Diff since v0.14.9

v0.14.10 contains a number of small fixes, utility and convenience.

  • The docs got some minor fixes to be up to date with the latest state of the package
  • A small bug was fixed for when the frobenius schur factors were not gauged to be \pm1
  • Various compat entries were updated
  • A bug with the parsing of @planar and @plansor was resolved

Merged pull requests:

Closed issues:

  • redesign caches and clear/disable during tests (#242)
  • Error in planar contractions with sum (#262)
  • Infinite recursion for ⊕(::ProductSpace, ::ProductSpace) (#264)
  • Lower bounds on compat TensorKitSectors (#266)

v0.14.9

18 Jul 11:19
ef03d19

Choose a tag to compare

TensorKit v0.14.9

Diff since v0.14.8

Merged pull requests:

Closed issues:

v0.14.8

14 Jul 13:38
d509e10

Choose a tag to compare

TensorKit v0.14.8

Diff since v0.14.7

Merged pull requests:

  • Refactor repacking of transformer structure (#254) (@lkdvos)
  • [Fix] Transformers for non-abelian non-selfadjoint sectors (#256) (@lkdvos)

Closed issues:

  • Contraction error after v0.14.7 (#255)

v0.14.7

08 Jul 22:10
d68876b

Choose a tag to compare

TensorKit v0.14.7

Diff since v0.14.6

This patch release contains some non-breaking changes in the form of important performance reworks that are particularly relevant to non-Abelian symmetries in the context of tensors with a larger number of indices.
The backend for index manipulations for these kinds of tensors should be noticeably faster.
For those that wish the experiment, you can also now configure the multithreading settings for these operations through set_num_transformer_threads(n).
Additionally, the system for keeping the cached data has been refactored and cleaned up, so it should be slightly easier to interact with that and print information about it.
Finally, various minor convenience and docs improvements have been carried out.

Merged pull requests:

  • make all caches behave the same (#244) (@Jutho)
  • Default spacetype and sectortype implementations in type domain (#248) (@ogauthe)
  • DiagonalTensorMap performance and convenience specializations (#249) (@lkdvos)
  • small type stability fix (#250) (@Jutho)
  • [Performance] TreeTransformer refactor + multithreading (#251) (@lkdvos)
  • Add color inversion for docs images in dark themes (#253) (@leburgel)

Closed issues: