There is a single input file to test all four drivers. The input data for each path (testing xGEEV, xGEES, xGEEVX and xGEESX) is preceded by a single line identifying the path (SEV, SES, SVX and SSX, respectively, when x=S, and CEV, CES, CVX and CSX, respectively, when x=C). We discuss each set of input data in turn.
An annotated example of input data for testing SGEEV is shown below (testing CGEEV is identical except CEV replaces SEV):
SEV Data file for the Real Nonsymmetric Eigenvalue Driver 6 Number of matrix dimensions 0 1 2 3 5 10 Matrix dimensions 3 3 1 4 1 Parameters NB, NBMIN, NX, NS, NBCOL 20.0 Threshold for test ratios T Put T to test the error exits 2 Read another line with random number generator seed 2518 3899 995 397 Seed for random number generator SEV 21 Use all matrix types
The first line must contain the characters SEV in columns 1-3. The remaining lines are read using list-directed input and specify the following values:
|line 2:||The number of values of matrix dimension N|
|line 3:||The values of N, the matrix dimension|
|line 4:||The values of the parameters NB, NBMIN, NX, NS and NBCOL|
|line 5:||The threshold value THRESH for the test ratios|
|line 6:||T to test the error exits|
|line 7:||An integer code to interpret the random number seed|
|=0: Set the seed to a default value before each run|
|=1: Initialize the seed to a default value only before the first run|
|=2: Like 1, but use the seed values on the next line|
|line 8:||If line 7 was 2, four integer values for the random number seed|
|line 9:||Contains `SEV' in columns 1-3, followed by the number of matrix types|
|(an integer from 0 to 21)|
|line 9:||(and following) if the number of matrix types is at least one and less than|
|21, a list of integers between 1 and 21 indicating which matrix types are to|
The input data for testing xGEES has the same format as for xGEEV, except SES replaces SEV when testing SGEES, and CES replaces CEV when testing CGEES.
The input data for testing xGEEVX consists of two parts. The first part is identical to that for xGEEV (using SVX instead of SEV and CVX instead of CEV). The second consists of precomputed data for testing the eigenvalue/vector condition estimation routines. Each matrix is stored on 1+2*N lines, where N is its dimension (1+N+N**2 lines for complex data). The first line contains the dimension, a single integer (for complex data, a second integer ISRT indicating how the data is sorted is also provided). The next N lines contain the matrix, one row per line (N**2 lines for complex data, one item per row). The last N lines correspond to each eigenvalue. Each of these last N lines contains 4 real values: the real part of the eigenvalues, the imaginary part of the eigenvalue, the reciprocal condition number of the eigenvalues, and the reciprocal condition number of the vector eigenvector. The end of data is indicated by dimension N=0. Even if no data is to be tested, there must be at least one line containing N=0.
The input data for testing xGEESX also consists of two parts. The first part is identical to that for xGEES (using SSX instead of SES and CSX instead of CES). The second consists of precomputed data for testing the eigenvalue/vector condition estimation routines. Each matrix is stored on 3+N lines, where N is its dimension (3+N**2 lines for complex data). The first line contains the dimension N and the dimension M of an invariant subspace (for complex data, a third integer ISRT indicating how the data is sorted is also provided). The second line contains M integers, identifying the eigenvalues in the invariant subspace (by their position in a list of eigenvalues ordered by increasing real part (or imaginary part, depending on ISRT for complex data)). The next N lines contains the matrix (N**2 lines for complex data). The last line contains the reciprocal condition number for the average of the selected eigenvalues, and the reciprocal condition number for the corresponding right invariant subspace. The end of data is indicated by a line containing N=0 and M=0. Even if no data is to be tested, there must be at least one line containing N=0 and M=0.