FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Tags · QuantumKitHub/TensorKit.jl · GitHub

Tags: QuantumKitHub/TensorKit.jl

Tags

v0.17.2

Toggle v0.17.2's commit message
[Diff since v0.17.1](v0.17.1...v0.17.2)

A performance-and-correctness patch release fixing an up-to-80x adjoint `permute!` slowdown, adding precompilation workloads, tools for timing various parts of the code and improving correctness assertions on multi-fusion code paths, along with a variety of minor bugfixes.

- **Performance**: index manipulation kernels reorganised around position-indexed subblocks, fixing adjoint `permute!`/`braid!`/`transpose!` being up to 80x slower than the plain-tensor path (#526)
- **Precompilation** workloads to reduce time-to-first-use (#487), plus TimerOutputs-based internal timers and cache API docs (#525, #507)
- **Enzyme AD**: forward/reverse rules for `flip`, unit insertion/removal, and planar operations (#488, #489, #474)

See [CHANGELOG](https://github.com/QuantumKitHub/TensorKit.jl/blob/main/docs/src/Changelog.md#0172---2026-09-20) for the complete list of changes.

**Merged pull requests:**
- Try to use vector multiplication for truncation error computation (#443) (@kshyatt)
- Reverse/forward Enzyme rules, refactoring, and tests for planar ops (#474) (@kshyatt)
- Precompilation (#487) (@lkdvos)
- Try letting Enzyme make rules for insert/remove unit (#488) (@kshyatt)
- Forward enzyme rule and tests for flip (#489) (@kshyatt)
- Make Format check safe for fork PRs (pull_request trigger) (#491) (@lkdvos)
- Even more lazy error strings (#492) (@kshyatt)
- Consolidate Enzyme index manipulation tests a bit and try running on 1.10 again (#496) (@kshyatt)
- Consolidate Enzyme TO and VI tests and retry stuff on 1.10 (#497) (@kshyatt)
- Fix bugs in `GradedSpace` constructor + `similar` of `SectorVector` (#498) (@borisdevos)
- Try combining the mul/planarcontract tests (#500) (@kshyatt)
- Try reducing twist mem usage (#501) (@kshyatt)
- Pass allocator through to transpose! in planar operations (#502) (@liuzhaochen)
- Do not allow duplicate `levels` in anyonic `braid` (#503) (@borisdevos)
- Fix `@planar` backend and allocator insertion (#505) (@lkdvos)
- Fix `--modules=` parsing in the benchmark entry point (#506) (@lkdvos)
- Document the global cache API (#507) (@lkdvos)
- Specialise `GradedSpace` functions based on storage type (#511) (@borisdevos)
- Add support for all kwargs in `permute` and `transpose` chain rules (#513) (@leburgel)
- Prevent construction of multifusion tensors with incompatible coloring (#515) (@borisdevos)
- Add `hash` for `FusionTreeBlock` to fix cacheing behind `AdjointTensorMap` `permute`s (#518) (@leburgel)
- perf: fix performance regression for non-abelian index manipulations (#521) (@lkdvos)
- Add TimerOutputs-based timers for internal kernels (#525) (@lkdvos)
- Refactor index manipulation kernels around position-indexed subblocks (#526) (@lkdvos)
- Fix: have table of contents render the tensors contents correctly (#527) (@borisdevos)
- Fix: let `Revise.jl` parse functions and docstrings correctly  (#528) (@borisdevos)
-  Insert allocator checkpoints for `@planar` calls (#529) (@leburgel)
- Fix: rename `in` variable to `coupled` (#530) (@lkdvos)
- Fix planar index reordering and remove `_contractedspace` (#532) (@lkdvos)
- Make ChainRules ext consistent with Mooncake and Enzyme (#535) (@kshyatt)
- Release v0.17.2 (#550) (@lkdvos)

**Closed issues:**
- Support for A <: AbstractMatrix (#64)
- Support of fermionic systems (#96)
- About the warning for svd AD (#168)
- Inconsistent handling of empty tensors when using multifusion sectors (#514)
- Permuting an `AdjointTensorMap` seems much slower than it should be (#516)
- Regression on `main`: `permute`/`braid` ~1.7–1.9× slower than v0.16.5 for non-Abelian sectors (#517)
- Support TimerOutputs.jl instrumentation (#523)
- TensorKit.artin_braid restricted to unique fusion sector types (#524)
- isunitspace doesn't check dimension for GenericUnit sectors (#537)
- GradedSpace ⊕/supremum bypass unit-homogeneity check (#538)
- isconj(::ComplexSpace) unconditionally returns true (#539)
- multi_associator returns scalar zero instead of vector on early-exit (#540)
- split(f, 0) throws BoundsError for zero-leg tree (#541)
- repartition returns bare Tuple instead of Pair in one branch (#542)
- Mooncake scalar_pullback overwrites tangent instead of accumulating (#543)
- rand/randn/randexp/randisometry(rng, T, space) broken (#544)
- pinv(::DiagonalTensorMap) atol/rtol defaulting is inverted (#545)
- t1 / t2 omits float promotion unlike t1 \ t2 (#546)
- planarcontract! rejects a basic zero-contracted-index planar contraction as non-cyclic (#551)

v0.17.1

Toggle v0.17.1's commit message
[Diff since v0.17.0](v0.17.0...v0.17.1)

A feature and performance patch release adding a matrix exponential (`exponential`/`exponential!`), broader Enzyme AD support, and several trivial-symmetry performance improvements.

- **Matrix exponential**: new `exponential` and `exponential!` for tensors (#465)
- **Enzyme AD**: forward and reverse rules for TensorOperations contractions, linear algebra, and VectorInterface, plus reverse rules for index manipulations (#436, #437, #440, #449, #451, #466)
- **Performance**: reduced overhead in the `TensorMap` constructor and trivial-symmetry code paths (#476, #479, #463, #478)
- **GPU**: consolidated GPU logic into a GPUArrays extension and dropped the explicit cuTENSOR dependency. Importing `cuTENSOR` is still recommended for best performance, as it enables the corresponding TensorOperations extension (#460, #455)
- **Docs**: added docstrings for `catdomain` and `catcodomain` (#485)

See [CHANGELOG](https://github.com/QuantumKitHub/TensorKit.jl/blob/main/docs/src/Changelog.md#0171---2026-07-13) for the complete list of changes.

**Merged pull requests:**
- Forward AD tests and cleanup for vector interface (#436) (@kshyatt)
- Forward rules for TensorOperations calls (#437) (@kshyatt)
- Add Enzyme forward and reverse rules and tests for VectorInterface (#440) (@kshyatt)
- Update VectorInterface requirement from 0.4.8, 0.5 to 0.4.8, 0.5, 0.6 in the all-julia-packages group (#445) (@dependabot[bot])
- A couple missing zero-derivs and an inplace rrule test for svd_trunc (#448) (@kshyatt)
- Forward and reverse Enzyme tests and rules for linalg (#449) (@kshyatt)
- Update pipeline.yml (#450) (@kshyatt)
- Forward and reverse Enzyme rules and tests for TensorOperations (#451) (@kshyatt)
- Remove explicit dependence on cuTENSOR for CUDA ext (#455) (@kshyatt)
- Improve DimensionMismatch error message in TensorMap constructor (#456) (@kshyatt)
- Run all AMD tensors tests with new Strided functionality (#458) (@kshyatt)
- Bump actions/checkout from 6 to 7 (#459) (@dependabot[bot])
- Consolidate duplicated GPU logic into new GPUArrays extension (#460) (@kshyatt)
- Try running Mooncake linalg tests with CuTensorMaps (#461) (@kshyatt)
- Add in planar and factorization tests for ROCTensorMap (#462) (@kshyatt)
- Trivial tensors fast path into TensorOperations machinery (#463) (@lkdvos)
- Exponential (#465) (@sanderdemeyer)
- Enzyme reverse mode rules and test for index manipulations (#466) (@kshyatt)
- Re-enable all CUDA planar tests (#467) (@kshyatt)
- docs: fix some typos (#468) (@jeis4wpi)
- Update setup.jl (#470) (@kshyatt)
- Fix Enzyme index manipulation spaces to match Mooncake (#471) (@kshyatt)
- Fix typo (#472) (@DamianJLin)
- Bypass some overhead in TensorMap constructor, bypass overhead in `sectorequal`/`sectorhash` for trivial symmetry (#476) (@lkdvos)
- Update benchmark suite to current TensorKit API (#477) (@lkdvos)
- Mark more error strings lazy (#478) (@kshyatt)
- perf: Trivial symmetry performance improvements (#479) (@lkdvos)
- Enzyme doesn't need a custom rule for trace_permute (#480) (@kshyatt)
- Release v0.17.1 (#481) (@lkdvos)
- No need for custom twist rule (#483) (@kshyatt)
- docs: Add docstrings for catdomain and catcodomain (#485) (@VinceNeede)

**Closed issues:**
- AMDGPU tests are OOMing the runners (#428)
- A contraction that should (?) be planar (#447)
- CUDA functionality is hidden behind cuTENSOR dependency (#454)
- Unnecessary Set allocation in sectorequal/issetequal for Trivial sectors (#475)
- `catdomain` and `catcodomain` are exported but undocumented (#484)

v0.17.0

Toggle v0.17.0's commit message
[Diff since v0.16.5](v0.16.5...v0.17.0)

This release reworks the index manipulation API, adding backend and allocator support while uniformizing the API.

- Reworked index manipulation API with backend and allocator support, plus accompanying documentation (#416, #438)
- BraidingTensor can now have a custom storage type (#393)
- Mooncake forward rules for linear algebra functions (#434)
- Improved GPU support by bypassing scalar indexing (#375), with bumped minimum CUDA/cuTENSOR versions (#404)

See [CHANGELOG](https://github.com/QuantumKitHub/TensorKit.jl/blob/main/docs/src/Changelog.md#0170---2026-06-03) for the complete list of changes.

**Merged pull requests:**
- fix: improvements to bypass scalar indexing and improve GPU support (#375) (@kshyatt)
- Rework index manipulation API (#416) (@lkdvos)
- `remove_gauge_dependence!` overloads (#419) (@lkdvos)
- Fix for SUNRepresentations type parameter change (#426) (@leburgel)
- fix: actually pass testsuite to `runtests` (#427) (@lkdvos)
- Simplify `map(isdual, (co)domain)` (#430) (@Yue-Zhengyuan)
- Return a tuple when broadcasting over ProductSpace (#431) (@Yue-Zhengyuan)
- feat: support `broadcast` and `map` for `HomSpace` (#432) (@lkdvos)
- Mooncake forward rules for linalg (#434) (@kshyatt)
- Remove unnecessary _ind_intersect (#435) (@kshyatt)
- Documentation for index-manipulation and contraction API rework (#438) (@lkdvos)
- Correct artin braid image (#441) (@borisdevos)
- Fix foldright cache miss dual flag (#442) (@yitan1)
- Release v0.17.0 (#444) (@lkdvos)

**Closed issues:**
- Slow but unbounded grouth of memory cost with time? (#235)
- Significantly increased number of allocations in v0.16.4 compared to v0.16.3 (#425)

v0.16.5

Toggle v0.16.5's commit message
[Diff since v0.16.4](v0.16.4...v0.16.5)

v0.16.5 is a patch release backporting fixes and a small feature from the v0.17 development line.

- Support for `DefaultAlgorithm` (#422, #423)
- Fix `BraidingTensor` `planarcontract!` (#418)
- Improve `checksquare` error message (#417)

See [CHANGELOG](https://github.com/QuantumKitHub/TensorKit.jl/blob/main/docs/src/Changelog.md#0165---2026-04-30) for the complete list of changes.

**Merged pull requests:**
- [Backport] Implement `DefaultAlgorithm` support (#422) (#423) (@lkdvos)
- Release v0.16.5 (#424) (@lkdvos)

**Closed issues:**
- Issue with `DefaultAlgorithm` for `left_orth` on `TensorMap` (#405)
- Filter `cuda` and `amd` out of the GitHub CI workflow (#412)
- `cond` test fails depending on whether `--fast` is used in the testsuite (#413)

v0.16.4

Toggle v0.16.4's commit message
[Diff since v0.16.3](v0.16.3...v0.16.4)

Patch release with partial AMDGPU support, significant performance improvements to fusiontree manipulations, and several bug fixes.

- Partial tensor support for AMDGPU via a new extension ([#341](#341))
- Significant performance improvements: vectorized fusiontree manipulations ([#261](#261)), reduced cache footprint ([#387](#387)), avoid generic matmul fallback in transformation kernels ([#378](#378))
- Fixed ignored `adjoint` flag in `BraidingTensor` ([#392](#392))
- Added `spacetype` for `TruncationSpace` and square checks for `project_(anti)hermitian` / eigenvalue decompositions ([#403](#403), [#408](#408))

See [CHANGELOG](https://github.com/QuantumKitHub/TensorKit.jl/blob/main/docs/src/Changelog.md#0164---2026-04-23) for the complete list of changes.

**Closed issues:**
- `foldright` assumptions for `UniqueFusion` (#245)
- Contracting planar tensors with changeable legs (#252)
- `fusionblockstructure` should reuse data that is degeneracy-independent (#384)
- `domain == codomain` is not checked in `project_(anti)hermitian` (#388)
- Inconsistent dual flags in spaces (#391)
- Define equality for `TruncationStrategy`s (#407)

v0.16.3

Toggle v0.16.3's commit message
[Diff since v0.16.2](v0.16.2...v0.16.3)

A patch release with expanded Mooncake support, improved GPU compatibility, and documentation updates.

- Expanded Mooncake AD rules for broader automatic differentiation coverage ([#356](#356)).
- Adapt support for `BraidingTensor`, enabling GPU array adaptation workflows ([#374](#374)).
- Additional upstream and CUDA compatibility fixes, including `Base.ones`/`zeros` accepting `CuArray` ([#373](#373)).

- Expanded set of Mooncake AD rules for more comprehensive differentiation support ([#356](#356)).
- `Adapt.jl` support for `BraidingTensor`, allowing it to be adapted to GPU arrays ([#374](#374)).

- Documentation improvements and updates across multiple sections ([#345](#345)).

- `Base.ones` and `Base.zeros` now accept `CuArray` storage types for CUDA tensors ([#373](#373)).
- Additional small fixes for upstream Julia and CUDA compatibility ([#373](#373)).

- This is a patch release; the public API remains compatible with v0.16.2.
- Mooncake rule expansion may improve differentiation of previously unsupported operations.

[Full changelog](https://quantumkithub.github.io/TensorKit.jl/latest/Changelog/)

**Merged pull requests:**
- Some more documentation progress (#345) (@Jutho)
- Expand set of Mooncake rules (#356) (@lkdvos)
- A few more small fixes for upstream + CUDA (#373) (@kshyatt)
- Adapt for `BraidingTensor` (#374) (@lkdvos)
- Bump v0.16.3 (#377) (@lkdvos)

**Closed issues:**
- Support for AD with Mooncake (#338)
- Documentation inconsistent with actual operations that exist (#372)

v0.16.2

Toggle v0.16.2's commit message
[Diff since v0.16.1](v0.16.1...v0.16.2)

A patch release with important bug fixes and improved handling for `storagetype`.

- Enhanced `storagetype` promotion system that robustly handles unions and abstract tensor map types ([#370](#370)).
- Multiple truncation bug fixes improving reliability of truncation operations ([#368](#368), [#369](#369)).
- small CUDA support improvements ([#366](#366)).

- A more robust promotion system for `storagetype`s to better handle working with unions and other abstract tensor map types ([#370](#370)).

- Fix `findtruncated` with `truncspace` to correctly handle truncation spaces ([#369](#369)).
- Fix `truncrank` when kept rank is larger than input ([#368](#368)).
- Added missing `similar` definition for `SectorVector`, improving compatibility and extensibility ([#367](#367)).
- Small fixes for CUDA support, specifically ChainRules and constructor improvements ([#366](#366)).

- This is a patch release; the public API remains compatible with v0.16.1.
- The improved `storagetype` promotion system may change behavior when mixing different storage types, but should generally be more correct and predictable.

Full changelog: see `docs/src/Changelog.md`.

**Merged pull requests:**
- Small fixes for upstream + CUDA (#366) (@kshyatt)
- Small utility for working with `SectorVector` (#367) (@lkdvos)
- Fix `truncrank` when kept rank is larger than input rank (#368) (@Yue-Zhengyuan)
- Fix `findtruncated` with `truncspace` (#369) (@Yue-Zhengyuan)
- Promote storagetypes (#370) (@lkdvos)
- v0.16.2 (#371) (@lkdvos)

v0.16.1

Toggle v0.16.1's commit message
[Diff since v0.16.0](v0.16.0...v0.16.1)

A small patch release with bug fixes, performance improvements, and early GPU/extension support.

- Initial CUDA support for factorizations and preparatory work for CUDA-backed workflows ([#336](#336), [#325](#325)).
- GPU-friendly truncation implementations and `norm` optimizations for large tensors ([#349](#349), [#351](#351)).
- Better preservation of tensor `storagetype` when converting between `TensorMap` representations ([#357](#357)).

- CUDA support groundwork for factorizations and GPU extensions ([#336](#336), [#325](#325)).
- Mooncake and Adapt extension integration scaffolding ([#352](#352), [#344](#344)).
- Exported `TimeReversed` symbol for convenience ([#337](#337)).

- `convert(TensorMap, t)` retains `storagetype` during conversions ([#357](#357)).
- `transpose` specialization for `DiagonalTensorMap` to improve correctness/performance ([#335](#335)).
- Unified `CartesianSpace` and `ComplexSpace` constructors ([#334](#334)).
- TensorOperations AD cleanup and test reorganization ([#343](#343), [#339](#339)).

- Correct handling of real tensors with complex `scalartype` ([#360](#360)).
- Stable ordering for diagonal eigenvalues ([#350](#350)).
- Divide-by-zero safety in `show` for empty tensors and ensure `svd_vals(::DiagonalTensorMap)` returns `SectorVector` ([#329](#329), [#333](#333)).
- Various type-stability and small test fixes (several commits).
- Adding tensors of different types now correctly promotes ([#364](#364))

- GPU-friendly truncation routines reduce host/GPU overhead for large truncations ([#349](#349)).
- `norm` improvements reduce allocations and speed common cases ([#351](#351)).

- This is a patch release; the public API remains compatible with v0.16.0.
- CUDA support is initial. To use CUDA features, enable the CUDA/cuTENSOR stack and the optional extensions (see `Project.toml` extras).

Thanks to: Lukas Devos, Katharine Hyatt, Boris De Vos, Yue Zhengyuan, and others for contributions and reviews.

**Merged pull requests:**
- Start on CUDA extension (#325) (@kshyatt)
- replace `eltype` with `scalartype` in `blas_contract!` (#326) (@lkdvos)
- rework tensor contructors to allow storagetype specification (#327) (@lkdvos)
- Fix `show` for empty tensors (#329) (@lkdvos)
- Improve `Diagonal` constructors with `similar_diagonal` (#330) (@lkdvos)
- Small fixes and changelog updates (#331) (@lkdvos)
- `svd_vals(::DiagonalTensorMap)` should return a `SectorVector` (#333) (@lkdvos)
- Uniformize `CartesianSpace` and `ComplexSpace` constructors (#334) (@lkdvos)
- `transpose` specialization for `DiagonalTensorMap` (#335) (@lkdvos)
- Initial support for CUDA + factorizations (#336) (@kshyatt)
- export `TimeReversed` (#337) (@borisdevos)
- Move bugfixes Zygote tests to AD tests (#339) (@kshyatt)
- TensorOperations AD clean-up (#343) (@lkdvos)
- Adapt extension (#344) (@lkdvos)
- GPU-friendly truncation implementations (#349) (@lkdvos)
- sorted Diagonal eigenvalues (#350) (@lkdvos)
- `norm` performance optimization (#351) (@lkdvos)
- Setup Mooncake extension (#352) (@lkdvos)
- `convert(TensorMap, t)` retains storagetype (#357) (@lkdvos)
- Fix handling of real tensors with complex scalartype (#360) (@lkdvos)
- Construct DiagonalTensorMap from SectorVector (#363) (@Yue-Zhengyuan)
- Adding `DiagonalTensorMap` and `TensorMap` mixtures (#364) (@lkdvos)
- v0.16.1 (#365) (@lkdvos)

**Closed issues:**
- truncation error with `rtol` (#314)
- v0.16: Conflicting `ishermitian` when precompiling (#328)
- initialize `ComplexSpace` from vector errors (#332)
- GPU + truncation support collation issue (#346)
- Would more detailed error message of SpaceMismatch be possible (#347)
- Support `CUDA.zeros` and `CUDA.ones` for `TensorMap` (#353)
- Error when adding/subtracting `TensorMap` and `DiagonalTensorMap` (#361)
- Create DiagonalTensorMap from SectorVector (#362)

v0.16.0

Toggle v0.16.0's commit message
[Diff since v0.15.3](v0.15.3...v0.16.0)

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.

- 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)

- 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)

- `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)

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

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

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

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

- [Full changelog](v0.15.3...v0.16.0)
- [Stable docs](https://quantumkithub.github.io/TensorKit.jl/stable)
- [Development docs](https://quantumkithub.github.io/TensorKit.jl/dev)

**Merged pull requests:**
- WIP: Documentation update/overhaul (#289) (@Jutho)
- Generalising functions to support `GenericUnit` (#291) (@borisdevos)
- Avoid copy in `twist` for tensors with bosonic braiding (#305) (@leburgel)
- Error message improvements (#309) (@lkdvos)
- remove`'\n'` in compact printing of tensors (#310) (@lkdvos)
- rework TensorOperations implementation to use backend and allocator (#311) (@lkdvos)
- Updates for MatrixAlgebraKit v0.6 (#312) (@lkdvos)
- Add symmetric tensor tutorial to docs as appendix (#316) (@leburgel)
- Bump actions/checkout from 5 to 6 (#318) (@dependabot[bot])
- Add `rrule` for `transpose` (#319) (@lkdvos)
- Bump v0.16 + Remove old deprecations (#321) (@lkdvos)
- further tweak tensor and block show (#322) (@Jutho)
- Update changelog [skip ci] (#323) (@Jutho)
- Add `SectorVector` (#324) (@lkdvos)

**Closed issues:**
- `right_null` errors when `trunc` is provided (#313)
- truncation error with `rtol` (#314)

v0.15.3

Toggle v0.15.3's commit message
[Diff since v0.15.2](v0.15.2...v0.15.3)

**Merged pull requests:**
- fix typo in `show(::GradedSpace)` (#308) (@lkdvos)

Back | FazBrowse Home | New Git URL