Eigenvalue Problems

Eigenvalue and eigenvector computations for standard and generalized problems.

Overview

LAPACK++ provides comprehensive eigenvalue solvers for: - Symmetric/Hermitian matrices (real eigenvalues) - Non-symmetric matrices (complex eigenvalues) - Generalized eigenvalue problems - Schur decompositions

Standard Eigenvalue Problems

Symmetric/Hermitian Eigenvalues

syev / heev - Eigenvalues and eigenvectors (simple driver)

Computes all eigenvalues and optionally eigenvectors of symmetric/Hermitian matrix. Uses QR iteration.

syevd / heevd - Eigenvalues using divide-and-conquer

Faster algorithm for large matrices. Recommended for most cases.

syevr / heevr - Eigenvalues using MRRR algorithm

Most accurate and efficient for computing subset of eigenvalues/vectors. Uses Relatively Robust Representations.

syevx / heevx - Eigenvalues with subset selection

Computes selected eigenvalues/vectors by value range or index range.

sygv / hegv - Generalized symmetric eigenvalue problem

Solves \(Ax = \lambda Bx\), \(ABx = \lambda x\), or \(BAx = \lambda x\).

sygvd / hegvd - Generalized using divide-and-conquer

sygvx / hegvx - Generalized with subset selection

Non-Symmetric Eigenvalues

geev - Eigenvalues and eigenvectors

Computes eigenvalues and optionally left/right eigenvectors.

gees - Schur decomposition

Computes Schur form \(A = QTQ^H\) where T is upper triangular (or quasi-triangular for real).

geesx - Schur with condition estimates

Extended Schur decomposition with reciprocal condition numbers.

geevx - Eigenvalues with balancing and condition estimates

Tridiagonal/Banded Eigenproblems

stev - Symmetric tridiagonal eigenvalues (simple driver)

stevd - Symmetric tridiagonal using divide-and-conquer

stevr - Symmetric tridiagonal using MRRR

stevx - Symmetric tridiagonal with subset selection

sbev / hbev - Symmetric band eigenvalues

sbevd / hbevd - Symmetric band using divide-and-conquer

sbevx / hbevx - Symmetric band with subset selection

Generalized Eigenvalue Problems

Symmetric/Hermitian

sygv / hegv - Types 1, 2, 3 (see itype)

Type 1: \(Ax = \lambda Bx\) (most common)

Type 2: \(ABx = \lambda x\)

Type 3: \(BAx = \lambda x\)

sygvd / hegvd - Generalized using divide-and-conquer

sygvx / hegvx - Generalized with subset selection

spgv / hpgv - Packed storage format

spgvd / hpgvd - Packed storage with divide-and-conquer

spgvx / hpgvx - Packed storage with subset

sbgv / hbgv - Banded matrices

sbgvd / hbgvd - Banded with divide-and-conquer

sbgvx / hbgvx - Banded with subset

Non-Symmetric (Generalized Schur)

gges - Generalized Schur decomposition

Computes generalized Schur form of pair (A,B): \(A = QSZ^H\), \(B = QTZ^H\)

ggesx - Generalized Schur with condition estimates

ggev - Generalized eigenvalues and eigenvectors

Solves \(Ax = \lambda Bx\)

ggevx - Generalized eigenvalues with balancing

Reduction to Standard Form

hegst / sygst - Reduce to standard form

Transforms \(Ax = \lambda Bx\) to \(Cy = \lambda y\) using Cholesky factorization of B.

hpgst / spgst - Packed storage variant

hbgst / sbgst - Band storage variant

Auxiliary Reductions

hetrd / sytrd - Reduce to tridiagonal form

Computes \(A = Q T Q^H\) where T is tridiagonal.

orgtr / ungtr - Generate Q from tridiagonal reduction

ormtr / unmtr - Multiply by Q from tridiagonal reduction

gehrd - Reduce to Hessenberg form

Computes \(A = Q H Q^H\) where H is upper Hessenberg.

orghr / unghr - Generate Q from Hessenberg reduction

ormhr / unmhr - Multiply by Q from Hessenberg reduction

Schur Form Manipulation

hseqr - Schur decomposition of Hessenberg

Computes eigenvalues from Hessenberg form.

trexc - Reorder Schur factorization

Reorders diagonal blocks of Schur form.

trsen - Reorder and compute condition numbers

trsyl - Sylvester equation \(AX \pm XB = C\)

Eigenvector Computation

trevc - Eigenvectors from Schur form

Computes right and/or left eigenvectors from triangular Schur form.

hsein - Eigenvectors by inverse iteration

trsna - Reciprocal condition numbers for eigenvectors

Balancing

gebal - Balance non-symmetric matrix

Permutes and scales to improve eigenvalue accuracy.

gebak - Transform eigenvectors after balancing

ggbal - Balance generalized eigenvalue problem

ggbak - Transform eigenvectors after generalized balancing

Utility Functions

lacpy - Copy matrix or submatrix

laset - Initialize matrix to constants

disna - Reciprocal condition numbers for eigenvectors

See Also