You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 4503f14
Browse filesBrowse the repository at this point in the historyBrowse files
- 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))
26
47
27
48
### Changed
28
49
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))
-`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))
33
57
34
58
### Deprecated
35
59
36
60
### Removed
37
61
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
+
38
64
### Fixed
39
65
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))
41
72
42
73
### Performance
43
74
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))
46
78
- 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))
0 commit comments