Finding the eigenvalues and eigenvectors of a nonsymmetric matrix 16#16 is done in the following stages:

- 16#16 is decomposed as 134#134, where 132#132 is unitary,
135#135 is upper Hessenberg, and 136#136 is the conjugate transpose of 132#132.
- 135#135 is decomposed as 137#137, where 88#88 is unitary
and 85#85 is in Schur form; this also gives the eigenvalues
138#138, which may be considered to form a diagonal
matrix 139#139.
- The left and right eigenvector matrices 140#140 and 74#74
of the Schur matrix 85#85 are computed.
- Inverse iteration is used to obtain the left and right eigenvector matrices 141#141 and 98#98 of the matrix 135#135.

To check these calculations, the following test ratios are computed:

142#142

where the subscript 133#133 indicates that the eigenvalues and eigenvectors were computed at the same time, and 53#53 that they were computed in separate steps. (All norms are 143#143.) The scalings in the test ratios assure that the ratios will be 124#124, independent of 144#144 and 9#9, and nearly independent of 4#4.

When the test program is run, these test ratios will be compared with a user-specified threshold 145#145, and for each test ratio that exceeds 145#145, a message is printed specifying the test matrix, the ratio that failed, and its value. A sample message is

Matrix order= 25, type=11, seed=2548,1429,1713,1411, result 8 is 11.33

In this example, the test matrix was of order 146#146 and of type 11 from Table 5, ``seed'' is the initial 4-integer seed of the random number generator used to generate 16#16, and ``result'' specifies that test ratio 147#147 failed to pass the threshold, and its value was 148#148.