-
-
Notifications
You must be signed in to change notification settings - Fork 35
Closed
Description
I just noticed that the LinearAlgebra package only supports a very small number of specialized functions for Hessenberg factorization objects (#7965), which limits their practical utility. Some things that would be nice to have:
- Fast
H \ b: this can be done in O(n²) operations. Currently it gives aMethodError. Actually, as discussed below, we can even support fast(H-µI) \ b, where different shifts µ can be used without making copies. (H+μI) \ x solvers for Hessenberg factorizations julia#31853 - Fast QR factorization.
- Fast eigenvalues etc. (eigensolvers for Hessenberg matrices #858)
-
H*scalarandH+µ*Ishould return anotherHessenbergobject; currently these give aMethodError. Ideally, as discussed below, the shift µ should be stored in theHessenbergobject itself, so that multiple shifts can be applied without allocating a whole new matrix. (H+μI) \ x solvers for Hessenberg factorizations julia#31853 - determinant (and logdet etc) of
H+µ*Iin O(n²) operations, e.g. using theorem 2.1 of this paper or maybe using Givens rotations to make H upper-triangular (though avoiding copying the whole matrix would be good). #31853 -
hessenberg(::Hermitian)or real-symmetric — in this case the Hessenberg matrix is tridiagonal with associated speedups. (H+μI) \ x solvers for Hessenberg factorizations julia#31853
This came up on discourse, where someone wanted to solve (A - λ*I) \ b problems repeatedly for many different λ — a nice way to do this is via a Hessenberg factorization of A = QHQ' since A - λ*I = Q(H-λ*I)Q' and subsequent solves are O(n²). You could also use Schur for this sort of thing, but computing the Schur factorization is a lot more expensive (≈7×).
ararslan, chriscoey, nickrobinson251 and schneiderfelipeStefanKarpinski, ararslan, eulerkochy and schneiderfelipe
Metadata
Metadata
Assignees
Labels
No labels