| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
[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)
[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)
[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)
[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)
[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)
[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)
[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)
[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)
[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)
| Back | FazBrowse Home | New Git URL |