Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Just to open the discussion about how we should do the
SymTridiagonal
. The eigen solver works well when it only uses QL steps. The first is LAPACK and the second is the new julia implementation.LAPACK tries to be clever and switch between QR and QL, but for me, the QR doesn't give fast convergence.
I didn't use the
Givens
type because I wanted to see how fast I could make it and also because I couldn't use theA_mul_B
methods anyway. There is no room for the bulge in aSymTridiagonal
.We also have to consider the vectors. There are at least two options for handling the vectors. We could do the same as LAPACK and apply the rotations in each step, or we could accumulate
Givens
matrices in aRotation
. We should probably also introduce aSymmetricTridiagonalFactorization
immutable to keep track of all the pieces.