-
-
Notifications
You must be signed in to change notification settings - Fork 400
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
Matrix Decompositions: Iwasawa, Cartan, Bruhat-Iwahori, TSB, Bruhat #30690
Comments
Commit: |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:8
Setting new milestone based on a cursory review of ticket status, priority, and last modification date. |
comment:9
Setting a new milestone for this ticket based on a cursory review. |
comment:10
Stalled in |
comment:12
This would be a good feature to have. Some very quick comments:
|
comment:15
Replying to @n-vi:
In
Then it should be a separate function. There is no need to add it to the matrix class itself. Continuing this line of reasoning, it would be best to be in a separate file, in part to also not lengthen
Exactly as I said, it simply is returning a function
|
comment:17
Hi Julian, thanks again.
New commits:
|
comment:18
I agree that it is nice to have all these decompositions but I think that several of them are already available under different names:
Maybe you should consider taking advantage of these normal forms to shorten your code and make it easier to review. Also, I'm not very enthousiastic to have so many underscore helper methods. IHMO, it's better to turn them into functions and put them outside the class. |
comment:19
Yes, there are quite a lot of these. It's a matter of style but I think it's fine like this. Some of them could probably be nested |
comment:20
I cloned the changeset here to https://gitlab.com/sagemath/sage/-/merge_requests/56 where it's hopefully much easier to review this. |
comment:24
Hi, thank you for the comments. Regarding the helper methods: If you think it best, I can gladly convert them into functions in a different file (in that case I will need some help understanding where |
comment:25
Replying to @xcaruso:
Continuing our discussion, here are some differences between Iwasawa and Cartan to the Hermite-Normal-Form and Smith-Normal-Form:
As for Bruhat - I am not sure yet how to deduce it from the echeclon form (bearing in mind that I need to have all 3 matrices in the decomposition, rather than only the permutation matrix) but I can think about it. |
comment:26
The Bruhat decomposition (for GLn) is just the I strongly disagree with you about the readability of
|
comment:27
Hi, thank you for the comments! Regarding the Bruhat decomposition - I think there might be some confusion in the names of the decompositions. The Bruhat decomposition I am talking about for a matrix A, is A=T1ST2, such that S is a permutation matrix and T1,T2 are invertible upper triangular. From our discussion at: https://sagemath.zulipchat.com/#narrow/stream/271072-padics/topic/matrix.20decompositions/near/273104719, it didn't seem to be deducible from echelon. Do you think differently? As for the helper functions, I understand now that they should have been put somewhere else, and I am willing to change this - I would probably need some guidance as to where to put them though. By the way, I am not sure whether this ticket is still followed by the others. Perhaps it would be best to move our discussion to the gitlab branch: https://gitlab.com/sagemath/sage/-/merge_requests/56. Thank you! |
comment:28
Let's actually keep the discussion here please. I don't want to fragment things even further. You can easily get the upper triangular case by acting by the longest element first (which simply reverses the rows), and then undoing that for the L matrix by conjugation, making it into an upper triangular matrix, and also multiplying it to the permutation matrix. Basically any other form of Borel versus opposite Borel is equivalent by some w0 multiplication. It is a simple exercise. |
comment:29
Replying to @tscrim:
Could you please do the exercise for us? I tried yesterday but didn't manage to. Besides, this paper https://hal.archives-ouvertes.fr/hal-01251223v2/document seems to say that what we need to compute a Bruhat decomposition is a "PLUQ decomposition revealing the rank profile"; a classical PLU decomposition is not enough. Another hint supporting that Bruhat is a bit different from PLU is that the permutation matrix is uniquely determined for Bruhat while it is not for PLU. |
comment:30
|
comment:31
Yes, |
In this ticket, I add implementations for the following decompositions:
Notes and Issues:
matrix_over_field
method returns a deep copy of the original matrix (even when the original is already defined over a field).unit_part
method for padics, andvaluation_zero_part
for laurent.Depends on #30432
CC: @oriparzan @tscrim
Component: linear algebra
Keywords: laurent, decomposition, iwasawa, bruhat, bruhat-iwahori, TSB, cartan
Author: Noa Viner
Branch/Commit: u/caruso/matrix_decompositions__iwasawa__cartan__bruhat_iwahori__tsb__bruhat @
5aaf4d7
Issue created by migration from https://trac.sagemath.org/ticket/30690
The text was updated successfully, but these errors were encountered: