Skip to content

[WIP] MatrixAlgebraKit decompositions #230

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 48 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
669f49e
implement `foreachblock`
lkdvos Mar 16, 2025
6534489
Implement `eig_full!`
lkdvos Mar 16, 2025
d90b210
Use `eig_full` in `eig`
lkdvos Mar 16, 2025
49b41e2
Fix factorisation scalartype
lkdvos Mar 19, 2025
3f9c871
Add scheduler support
lkdvos Mar 19, 2025
900200a
Add BlockAlgorithm
lkdvos Mar 19, 2025
b455203
Add more matrixalgebra methods
lkdvos Mar 19, 2025
45075b0
Start switching more factorizations over
lkdvos Mar 20, 2025
d2a0071
Improve `svd` error messages
lkdvos Mar 20, 2025
eafe7ea
more error msg improvements
lkdvos Mar 20, 2025
dc594ac
Properly escape macro hygiene
lkdvos Mar 20, 2025
ae10930
Fix SVD spaces
lkdvos Mar 20, 2025
91a6540
Also return `truncerr`
lkdvos Mar 20, 2025
63d3083
Add `setdiff` for ElementarySpace
lkdvos Apr 2, 2025
cf9a34d
Add `qr_` implementations
lkdvos Apr 2, 2025
1df86d1
start adding truncated svd
lkdvos Apr 2, 2025
f11533f
patch through leftorth
lkdvos Apr 2, 2025
bc0abab
Add `isisometry`
lkdvos May 8, 2025
75898d7
Revert isposdef changes
lkdvos May 8, 2025
6c1e126
preinitialize polar output
lkdvos May 8, 2025
394c9a3
Bump to MatrixAlgebraKit v0.2
lkdvos May 9, 2025
c2b0921
Rework left_orth
lkdvos May 9, 2025
940d044
Rework left_null
lkdvos May 9, 2025
694a0a7
include temporary tests
lkdvos May 9, 2025
7f2f6a2
Change `Base.setdiff` for `ominus`
lkdvos May 27, 2025
374f65a
change blockscheduler to type domain
lkdvos Jun 11, 2025
ec2df6c
make block iterator loop over union of sectors
lkdvos Jun 11, 2025
f856106
refactor `left_orth` for new matrixalgebrakit version
lkdvos Jun 11, 2025
ed3c825
Bunch of simplifications for new matrixalgebrakit versions
lkdvos Jun 11, 2025
6a18d85
Major overhaul
lkdvos Jun 12, 2025
25d03be
Clean up truncation
lkdvos Jun 12, 2025
7aeba6c
Update tuple formatting
lkdvos Jun 12, 2025
d297ea3
Fix scheduler selection
lkdvos Jun 12, 2025
545d7f6
Retain `dual` in `ominus`
lkdvos Jun 12, 2025
8537fec
Update blockiterator
lkdvos Jun 12, 2025
74758bc
Update svd rrule
lkdvos Jun 12, 2025
a1297f6
Update eig(h) rrule
lkdvos Jun 12, 2025
5ed31b6
Implement `isposdef`
lkdvos Jun 12, 2025
e538bc1
Fix imports
lkdvos Jun 12, 2025
ee4fb1c
Update tests and fixes
lkdvos Jun 12, 2025
3073b90
Clean up tests
lkdvos Jun 13, 2025
2a6a7d3
Bump minimal MatrixAlgebraKit version
lkdvos Jun 15, 2025
54fef81
Fix uninitialized cotangents
lkdvos Jun 15, 2025
4cdcb11
Update and use `MatrixAlgebraKit.isisometry`
lkdvos Jun 15, 2025
816c807
Fix missing export
lkdvos Jun 16, 2025
f0a7e79
Implement remaining factorization rrules
lkdvos Jun 17, 2025
4618584
Implement truncated eigenvalues
lkdvos Jun 17, 2025
f7eeaab
Implement `TruncationKeepSorted`
lkdvos Jun 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ version = "0.14.6"
[deps]
LRUCache = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
MatrixAlgebraKit = "6c742aac-3347-4629-af66-fc926824e5e4"
OhMyThreads = "67456a42-1dca-4109-a031-0a68de7e3ad5"
PackageExtensionCompat = "65ce6f38-6b18-4e1d-a461-8949797d7930"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
ScopedValues = "7e506255-f358-4e82-b7e4-beb19740aa63"
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
Strided = "5e0ebb24-38b0-5f93-81fe-25c709ecae67"
TensorKitSectors = "13a9c161-d5da-41f0-bcbd-e1a08ae0647f"
Expand All @@ -31,8 +34,11 @@ Combinatorics = "1"
FiniteDifferences = "0.12"
LRUCache = "1.0.2"
LinearAlgebra = "1"
MatrixAlgebraKit = "0.2.5"
OhMyThreads = "0.8.0"
PackageExtensionCompat = "1"
Random = "1"
ScopedValues = "1.3.0"
SparseArrays = "1"
Strided = "2"
TensorKitSectors = "0.1"
Expand Down
1 change: 1 addition & 0 deletions docs/src/lib/spaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ dual
conj
flip
zero(::ElementarySpace)
oneunit
supremum
Expand Down
6 changes: 6 additions & 0 deletions ext/TensorKitChainRulesCoreExt/TensorKitChainRulesCoreExt.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ module TensorKitChainRulesCoreExt
using TensorOperations
using VectorInterface
using TensorKit
using TensorKit: foreachblock
using ChainRulesCore
using LinearAlgebra
using TupleTools
Expand All @@ -11,6 +12,11 @@ import TensorOperations as TO
using TensorOperations: promote_contract, tensoralloc_add, tensoralloc_contract
using VectorInterface: promote_scale, promote_add

using MatrixAlgebraKit
using MatrixAlgebraKit: TruncationStrategy,
svd_compact_pullback!, eig_full_pullback!, eigh_full_pullback!,
qr_compact_pullback!, lq_compact_pullback!

include("utility.jl")
include("constructors.jl")
include("linalg.jl")
Expand Down
Loading
Loading