ZGET22 does an eigenvector check.
The basic test is:
RESULT(1) = | A E - E W | / ( |A| |E| ulp )
using the 1-norm. It also tests the normalization of E:
RESULT(2) = max | m-norm(E(j)) - 1 | / ( n ulp )
j
where E(j) is the j-th eigenvector, and m-norm is the max-norm of a
vector. The max-norm of a complex n-vector x in this case is the
maximum of |re(x(i)| + |im(x(i)| over i = 1, ..., n.
TRANSA
TRANSA is CHARACTER*1
Specifies whether or not A is transposed.
= 'N': No transpose
= 'T': Transpose
= 'C': Conjugate transpose
TRANSE
TRANSE is CHARACTER*1
Specifies whether or not E is transposed.
= 'N': No transpose, eigenvectors are in columns of E
= 'T': Transpose, eigenvectors are in rows of E
= 'C': Conjugate transpose, eigenvectors are in rows of E
TRANSW
TRANSW is CHARACTER*1
Specifies whether or not W is transposed.
= 'N': No transpose
= 'T': Transpose, same as TRANSW = 'N'
= 'C': Conjugate transpose, use -WI(j) instead of WI(j)
N
N is INTEGER
The order of the matrix A. N >= 0.
A
A is COMPLEX*16 array, dimension (LDA,N)
The matrix whose eigenvectors are in E.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >= max(1,N).
E
E is COMPLEX*16 array, dimension (LDE,N)
The matrix of eigenvectors. If TRANSE = 'N', the eigenvectors
are stored in the columns of E, if TRANSE = 'T' or 'C', the
eigenvectors are stored in the rows of E.
LDE
LDE is INTEGER
The leading dimension of the array E. LDE >= max(1,N).
W
W is COMPLEX*16 array, dimension (N)
The eigenvalues of A.
WORK
WORK is COMPLEX*16 array, dimension (N*N)
RWORK
RWORK is DOUBLE PRECISION array, dimension (N)
RESULT
RESULT is DOUBLE PRECISION array, dimension (2)
RESULT(1) = | A E - E W | / ( |A| |E| ulp )
RESULT(2) = max | m-norm(E(j)) - 1 | / ( n ulp )
j