Skip to content

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 18:43
· 63 commits to main since this release
36bf5a4

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: