If eigenvectors are desired, an orthonormal basis for the invariant subspace corresponding to the converged Ritz values is first computed. The vectors of this orthonormal basis are called approximate Schur vectors for Figure 5.2 outlines our strategy. Refer to Figure 5.2 for definitions of the quantities discussed in the remainder of this section.

For symmetric eigenvalue problems [s,d]seupd does not need Step 3 of Figure 5.2 since Schur vectors are also eigenvectors. Moreover, a special routine is not required to reorder the Schur form since is a diagonal matrix of real eigenvalues.
For real nonsymmetric eigenvalue problems, [s,d]neupd uses the real Schur form. That is, is an upper quasitriangular matrix with 1by1 and 2by2 diagonal blocks; each 2by2 diagonal block has its diagonal elements equal and its offdiagonal elements of opposite sign. Associated with each 2by2 diagonal block is a complex conjugate pair of eigenvalues. The real eigenvalues are stored on the diagonal of Similarly, is a block diagonal matrix. When the eigenvalue is complex, the complex eigenvector associated with the eigenvalue with positive imaginary part is stored in two consecutive columns of The first column holds the real part of the eigenvector and the second column holds the imaginary part. The eigenvector associated with the eigenvalue with negative imaginary part is simply the complex conjugate of the eigenvector associated with the positive imaginary part. The computed Ritz vectors are stored in the same manner.
The computation of the partial Schur form needed at Step 1 is performed by first calling the appropriate LAPACK subroutine that computes the full Schur decomposition of Another LAPACK subroutine, Xtrsen , reorders the computed Schur form to obtain and The approximate Schur vectors are formed by computing the QR factorization of and then postmultiplying with the factored form. This avoids the need for the additional storage that would be necessary if were computed directly. The appropriate LAPACK subroutines are used to compute and apply the QR factorization of The factored approach described above is extremely stable and efficient since is a numerically orthogonal matrix.
In exact arithmetic, there would be no need to perform the reordering (or the sorting for the symmetric eigenvalue problem). In theory, the implicit restarting mechanism would obviate the need for this. However, computing in finite precision arithmetic (as usual) complicates the issue and make these final reorderings mandatory. See Chapter 5 in [22] and [26] for further information.
When Ritz vectors are required, the LAPACK subroutine Xtrevc is called to compute the decomposition Since is an upper quasi triangular matrix, the product is easily formed using the level 3 BLAS subroutine Xtrmm .
The computed eigenvectors (Ritz vectors) returned by XYeupd are normalized to have unit length with respect to the semiinner product that was used. Thus, if they will have unit length in the standard 2norm. In general, a computed eigenvector will satisfy with respect to the matrix that was specified.