Page 1 of 1

Subroutine Question: DSYEV; Eigensolver for Symmetric Matrix

PostPosted: Wed Jan 11, 2006 1:58 am
by DavidB
Hello.

Is this forum the place for posting questions regarding specific routines, or should questions be sent to a specific individual?

My question:

I am looking over the code for DSYEV, a driver routine for solving for the eigenvalues and eigenvectors of a real, symmetric matrix. One of the parameters passed into DSYEV is UPLO. I am not clear on the purpose of this variable. The comments state the following:

“If UPLO = ‘U’, the leading NxN upper triangular part of A contains the upper triangular part of the matrix A. If UPLO = ‘L’, the leading NxN lower triangular part of A contains the lower triangular part of the matrix A. “

So the upper part of the matrix contains the upper part of the matrix, and the lower part of the matrix contains the lower part of the matrix?!?! That would seem obvious, so maybe I am just misunderstanding this variable. Somebody please clarify for me.

PostPosted: Wed Jan 11, 2006 5:55 am
by sven
The point is that you do not need to supply anything in the strictly lower triangular part of A when UPLO = 'U', or in the strictly upper triangular part of A when UPLO = 'L'. See Section 5.3.1 of the LAPACK Users' Guide:

http://www.netlib.org/lapack/lug/node122.html

Sven Hammarling.

PostPosted: Wed Jan 11, 2006 1:26 pm
by DavidB
Thank-you.

That clears things up. (I had downloaded DSYEV and copied the code to a Word document--which was over 130 pages long! So I printed off ONLY the code for the DSYEV sub-routine itself.) The User Guide has now been bookmarked and I will definitely be making use of it in the future.