Algorithms & their complexity behind `LinearAlgebra.eigvals`

What algorithm(s) does LinearAlgebra.eigvals employ for a general, i.e., non-symmetric, non-triangular matrix?

The Schur decomposition of a general matrix (the specific algorithm being known as QR iteration), as provided by LAPACK.

2 Likes

It calls LAPACK.geevx! under the hood, i.e. LAPACK: dgeevx (assuming Float64 precision).

BTW, I recommend @descend eigvals(A) from Cthulhu.jl to descend down the call tree and investigate things like this. This will lead you to these lines.

2 Likes