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
Update exact eigenspace routines #11595
Comments
Attachment: trac_11595-exact-eigenspaces.patch.gz |
Author: Rob Beezer |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:4
Hi Robert, |
comment:5
Replying to @sagetrac-mraum:
Thanks - that is a lot of work all by itself. ;-) I just re-read it myself. You are right that it is the most controversial. Interestingly, consistency was in some measure my goal.
That sounds fine to me. I'll see how it goes coding it up (should be easy) and post once completed. Rob |
Apply on top of main patch (this is a draft) |
comment:6
Attachment: trac_11595-exact-eigenspaces-format-draft.patch.gz I had to straighten out the format before checking to see if the results are cached. So instead of doing it twice, I moved it to a helper method, and then moved error checking there. Can you look and see if this is the behavior you are suggesting? If it looks OK, I'll add documentation, etc to get it up to standards. Right now it passses all tests on sage/matrix/matrix2.pyx, except for two obvious changes in the error message for the format keyword. See sage-devel for a post about another problem with all this... |
comment:7
That quiet exactly what I thought of. I still haven't tested this, but will do this tomorrow. I don't expect to find any problems. Please go ahead and doctest/document the additional changes. |
comment:8
There is one issue that I found, checking the tests. The lines with
lead to indention errors when building the documentation. Please consider this, when updating the documentation. |
comment:9
Replying to @sagetrac-mraum:
Yes, certainly. Thanks. Off to Bug Days 32 in just a bit, and will try to wrap this up soon. I have also looked at the "properties" patch and will try to get to that as well. And there is an RDF/CDF patch I know I need to follow up one (some comments about caching). Am I missing anything else? I know you touched a lot of tickets while Trac was not sending out email. Thanks, |
comment:10
Attachment: trac_11595-exact-eigenspaces-format-v1.patch.gz "v1 format" patch is ready to go - documented and tested. Apply on top of the main patch. |
This comment has been minimized.
This comment has been minimized.
Reviewer: Martin Raum |
comment:11
Great! Everything works fine. |
Merged: sage-4.7.2.alpha3 |
Reviewer patch. Fixes doctest errors due to noisy zeroes in eigenvalues. Apply on top of other patches. |
This comment has been minimized.
This comment has been minimized.
comment:13
Attachment: trac_11595-fix_noisy_zero_doctest_errors.reviewer.patch.gz Reviewer patch is up, fixing two doctest errors in |
Changed reviewer from Martin Raum to Martin Raum, Leif Leonhardy |
This patch overhauls the generic code for eigenspaces of exact matrices.
Removed plain
eigenspaces()
, which was deprecated 3 years ago. This required three replacements byeigenspaces_left()
in code outside thesage/matrix
directory.Right eigenspaces were not being cached. This is fixed by explicity performning the caching in the method before working on the transpose.
Warning about inexact rings have been removed and replaced by exceptions. These exceptions, and the documentation, suggest the eigenmatrix routines for RDF/CDF matrices where accuracy and speed should be much better (or code for symbolic matrices).
Documentation has been improved.
Only about 4 very minor changes were required outside of the matrix code to make doctests pass.
If basis matrices of eigenspaces over QQbar are hanging, then Viewing matrices of algebraic numbers can take a long time #11544 might need to be a dependency. Strictly speaking it is not required to build, but could be needed to pass doctests.
One change in behavior - the new
format
command, and its default value of "all". This will cause eigenspaces of matrices over the rationals formed with algebraic numbers fromQQbar
. This is consistent with how theeigenvalues()
method behaves for rational matrices. When it is not possible to compute eigenvalues this way, the failure is graceful and suggests theformat='galois'
option. This required just one change outside of the eigen-stuff code (eigenspaces of graphs). See discussion at:http://groups.google.com/group/sage-devel/browse_thread/thread/c67266a5581abff9/
Apply:
Component: linear algebra
Author: Rob Beezer
Reviewer: Martin Raum, Leif Leonhardy
Merged: sage-4.7.2.alpha3
Issue created by migration from https://trac.sagemath.org/ticket/11595
The text was updated successfully, but these errors were encountered: