-
-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
MAINT: symeig -- now that's a name I've not heard in a long time #3599
Conversation
temporarily closing while I move some docs... |
@rc I'm trying to bring the lobpcg code back up to date so that its tests and benchmarks will run again. Do you know much about the |
As a possible separate issue, |
If you can isolate a failing eigsh case (save the matrices to files), then that can be pursued further. |
@argriffing Yes, please, delete the 'main' section. It's probably a remnant from time when no proper tests were written. |
@rc Thanks! Now I see what it was doing. It was checking the preconditioned generalized eigendecomposition of the diagonal matrix |
Potential ARPACK bug then. There's a suggestion to fix it by using LAPACK 2.0 version of DLAHQR (plus some other discussion) here: http://forge.scilab.org/index.php/p/arpack-ng/issues/1315/ If DLAHQR -> DLAHQR2 fixes it, we should just patch it ourselves, and pressure ARPACK-NG upstream to fix it in the same way. |
I agree that an ARPACK bug may possibly be affecting scipy eigs/eigsh results, but just to be clear when I said "so eigs or eigsh or both may fail for this example because of that bug" this was just a speculation that they may fail and I have not tried using them with this example.
I'll probably not be up for hacking fortran code, but I'd agree with patching it in scipy and sending it upstream as you did earlier with the other ARPACK bug found in scipy. |
Added the |
The error is the 50 minute TravisCI timeout. I guess this PR is finished; it modernizes the |
@argriffing Thanks for cleaning that up! |
I may merge this soon if there are no further comments and no objection. |
The lobpcg code has some references to
symeig
which has been replaced byeigh
in scipy. This PR removes those old references.The code also has some non-working benchmarks and tests which I've partially updated, but I've run into some difficulties so this part is not yet finished. One difficulty is that
lobpcg
is the name of a subpackage, a module, and a function, and this is causing some import weirdness. Anyone have a suggestion as to how these files or functions should be renamed?Another difficulty is that lobpcg uses numpy arrays, matrices, and abstract linear operators, and the old non-working testing and benchmarking code seems to attempt to use an obsolete interface to lobpcg. I might try to fix this in the future. For example this old non-working code attempts to pass a plain python function that linearly maps vectors to vectors, whereas the current lobpcg interface expects something more like a LinearOperator or array or matrix to represent such a linear operator. The state of generic linear operator interfaces in numpy/scipy is somewhat dismal. For example here's yet another new github project added a couple weeks ago to try implementing such an interface.