LAPACK Archives

### [Lapack] Generalized eigenvalue problem: what if B is not upper triangul

 ```Please use one of the driver routines cggev (for eigenvectors) or cgges (just for the generalized Schur form). There are also "expert" versions of these routines (cggevx and cggesx) that compute condition numbers (useful for error bounds). Jim Demmel Francesco Poli wrote: ``````Hi! I am a CFD researcher at the University of Florence, Italy. I am trying to learn solving eigenvalue problems of the form A*x = lambda*B*x where A and B are n*n complex matrices, and x is the right eigenvector corresponding to the eigenvalue lambda. I'm writing Fortran77 code and linking against LAPACK, on a Debian GNU/Linux x86 machine. I'm using LAPACK version 3.0.20000531a and g77 version 3.3.5: http://packages.debian.org/sarge/lapack3 http://packages.debian.org/sarge/g77 According to http://www.netlib.org/lapack/lug/node56.html it seems that my problem is a generalized nonsymmetric eigenproblem. The first step to solve it, IIUC, is an Hessenberg reduction with CGGHRD. So I checked the CGGHRD manpage and found out that that subroutine assumes B is an upper triangular matrix: | CGGHRD - reduce a pair of complex matrices (A,B) to generalized | upper Hessenberg form using unitary transformations, where A is a | general matrix and B is upper triangular This sounds kind of strange, because that very matrix (B) is going to be transformed to an upper triangular matrix (T), while the other one (A) is going to be transformed to an upper Hessenberg one (H). Moreover, while the manpage mentions this constraint, I failed to find any warning about this in the LAPACK users' guide: http://www.netlib.org/lapack/lug/node56.html http://www.netlib.org/lapack/lug/node58.html In order to investigate further I wrote a little program that reads two matrices (A and B) and invokes CGGHRD to perform an Hessenberg reduction. I wanted to check whether the reduction is performed correctly for non triangular B matrices. The program is attached, along with its input data file and corresponding output. As can be seen, CGGHRD seems to ignore any subdiagonal element in B, treating B as upper triangular no matter what. Now the question is: what if my problem has a non-triangular B matrix? Am I using the wrong subroutine(s)? Should I preprocess A and B somehow? I searched LAPACK documentation, but failed to find any relevant hint. Could you please help? Thanks for your time (and for developing such a useful library!). ------------------------------------------------------------------------ _______________________________________________ Lapack mailing list Lapack@Domain.Removed http://lists.cs.utk.edu/listinfo/lapack `````` ```
 Current Thread [Lapack] Generalized eigenvalue problem: what if B is not upper triangular?, James Demmel <=

For additional information you may use the LAPACK/ScaLAPACK Forum.
Or one of the mailing lists, or