The eigendecomposition of an n-by-n real symmetric matrix is the factorization ( in the complex Hermitian case), where Z is orthogonal (unitary) and is real and diagonal, with . The are the eigenvalues of A and the columns zi of Z are the eigenvectors. This is also often written . The eigendecomposition of a symmetric matrix is computed by the driver routines xSYEV, xSYEVX, xSYEVD, xSYEVR, xSBEV, xSBEVX, xSBEVD, xSPEV, xSPEVX, xSPEVD, xSTEV, xSTEVX, xSTEVD and xSTEVR. The complex counterparts of these routines, which compute the eigendecomposition of complex Hermitian matrices, are the driver routines xHEEV, xHEEVX, xHEEVD, xHEEVR, xHBEV, xHBEVX, xHBEVD, xHPEV, xHPEVX, and xHPEVD (see subsection 2.3.4).
The approximate error
for the computed eigenvalues
EPSMCH = SLAMCH( 'E' ) * Compute eigenvalues and eigenvectors of A * The eigenvalues are returned in W * The eigenvector matrix Z overwrites A CALL SSYEV( 'V', UPLO, N, A, LDA, W, WORK, LWORK, INFO ) IF( INFO.GT.0 ) THEN PRINT *,'SSYEV did not converge' ELSE IF ( N.GT.0 ) THEN * Compute the norm of A ANORM = MAX( ABS( W(1) ), ABS( W(N) ) ) EERRBD = EPSMCH * ANORM * Compute reciprocal condition numbers for eigenvectors CALL SDISNA( 'Eigenvectors', N, N, W, RCONDZ, INFO ) DO 10 I = 1, N ZERRBD( I ) = EPSMCH * ( ANORM / RCONDZ( I ) ) 10 CONTINUE ENDIF