-
Notifications
You must be signed in to change notification settings - Fork 125
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
[TensorAlgebra] Matricized QR tensor decomposition #1266
Conversation
…m:ITensor/ITensors.jl into NDTensors_blocksparsearray_tensor_algebra
….jl into NDTensors_TensorAlgebra
Codecov ReportAll modified and coverable lines are covered by tests ✅
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #1266 +/- ##
===========================================
- Coverage 85.44% 54.80% -30.64%
===========================================
Files 89 88 -1
Lines 8402 8349 -53
===========================================
- Hits 7179 4576 -2603
- Misses 1223 3773 +2550 ☔ View full report in Codecov by Sentry. |
Nice – the interface looks really intuitive. |
This defines a function for performing a matricized QR decomposition of a tensor.
The high level API is:
We can also provide a permutation-based API, for example
qr(a, (1, 3), (2, 4))
which would be equivalent to the example above.There is currently a bug in
TensorAlgebra.contract
which is marked with a broken test so some label combinations can't be properly checked withTensorAlgebra.contract
, I'll investigate that in a future PR. But the main point here is to get started with the general code patterns involvingmatricize
andunmatricize
for performing matricized tensor decompositions, i.e. these patterns and a lot of code can be shared with SVD and other decompositions.