Add a new algorithm for the generalized eigenvalue problem#1235
Add a new algorithm for the generalized eigenvalue problem#1235vlovero wants to merge 1 commit intoReference-LAPACK:masterfrom
Conversation
|
This is great work! Here are some initial comments, I'll try to give your code a more detailed read through when I find some time.
|
|
I agree with the eigenvector computation and that's something I'm also working on improving! I've also been trying to prove convergence but haven't managed to come up with anything. I still need to do a lot more testing for the accuracy, but in my initial tests, I've found that the xggev4 routine gives more accurate results most of the time, but can still struggle on a few edge cases such as when the norms of A and B have very magnitudes. I'm happy to run the method through any tests! |
|
Now that you say it like that, the improved eigenvalue accuracy actually makes a lot of sense. Based on a gut feeling, I think that might be because you have cases with a lot of infinite eigenvalues. And deflating those beforehand can very significantly improve the accuracy of all eigenvalues. It's something that has been known for a while, but I guess that before this PR, there weren't a lot of publically available tools to deflate those eigenvalues that aren't obvious from the nonzero structure of the matrices. |
Currently, the algorithms used for the generalized eigenvalue algorithm have a few bottlenecks
The first issue can be addressed using a different HT reduction approach from Steel et al. The second issue can solved by identifying and deflating all of the infinite eigenvalues before the HT step.
These two bottlenecks are addressed in the xGGEV4 routines in this fork leading to 3-5x speedups when computing eigenvalues compared to xGGEV3.