ZGET52
   Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
November 2006
November 2006
Purpose
ZGET52  does an eigenvector check for the generalized eigenvalue
problem.
The basic test for right eigenvectors is:
| b(i) A E(i) - a(i) B E(i) |
RESULT(1) = max -------------------------------
i n ulp max( |b(i) A|, |a(i) B| )
using the 1-norm. Here, a(i)/b(i) = w is the i-th generalized
eigenvalue of A - w B, or, equivalently, b(i)/a(i) = m is the i-th
generalized eigenvalue of m A - B.
H H _ _
For left eigenvectors, A , B , a, and b are used.
ZGET52 also tests the normalization of E. Each eigenvector is
supposed to be normalized so that the maximum "absolute value"
of its elements is 1, where in this case, "absolute value"
of a complex value x is |Re(x)| + |Im(x)| ; let us call this
maximum "absolute value" norm of a vector v M(v).
If a(i)=b(i)=0, then the eigenvector is set to be the jth coordinate
vector. The normalization test is:
RESULT(2) = max | M(v(i)) - 1 | / ( n ulp )
eigenvectors v(i)
problem.
The basic test for right eigenvectors is:
| b(i) A E(i) - a(i) B E(i) |
RESULT(1) = max -------------------------------
i n ulp max( |b(i) A|, |a(i) B| )
using the 1-norm. Here, a(i)/b(i) = w is the i-th generalized
eigenvalue of A - w B, or, equivalently, b(i)/a(i) = m is the i-th
generalized eigenvalue of m A - B.
H H _ _
For left eigenvectors, A , B , a, and b are used.
ZGET52 also tests the normalization of E. Each eigenvector is
supposed to be normalized so that the maximum "absolute value"
of its elements is 1, where in this case, "absolute value"
of a complex value x is |Re(x)| + |Im(x)| ; let us call this
maximum "absolute value" norm of a vector v M(v).
If a(i)=b(i)=0, then the eigenvector is set to be the jth coordinate
vector. The normalization test is:
RESULT(2) = max | M(v(i)) - 1 | / ( n ulp )
eigenvectors v(i)
Arguments
| LEFT | 
 
(input) LOGICAL
 
=.TRUE.:  The eigenvectors in the columns of E are assumed 
to be *left* eigenvectors. =.FALSE.: The eigenvectors in the columns of E are assumed to be *right* eigenvectors.  | 
| N | 
 
(input) INTEGER
 
The size of the matrices.  If it is zero, ZGET52 does 
nothing. It must be at least zero.  | 
| A | 
 
(input) COMPLEX*16 array, dimension (LDA, N)
 
The matrix A. 
 | 
| LDA | 
 
(input) INTEGER
 
The leading dimension of A.  It must be at least 1 
and at least N.  | 
| B | 
 
(input) COMPLEX*16 array, dimension (LDB, N)
 
The matrix B. 
 | 
| LDB | 
 
(input) INTEGER
 
The leading dimension of B.  It must be at least 1 
and at least N.  | 
| E | 
 
(input) COMPLEX*16 array, dimension (LDE, N)
 
The matrix of eigenvectors.  It must be O( 1 ). 
 | 
| LDE | 
 
(input) INTEGER
 
The leading dimension of E.  It must be at least 1 and at 
least N.  | 
| ALPHA | 
 
(input) COMPLEX*16 array, dimension (N)
 
The values a(i) as described above, which, along with b(i), 
define the generalized eigenvalues.  | 
| BETA | 
 
(input) COMPLEX*16 array, dimension (N)
 
The values b(i) as described above, which, along with a(i), 
define the generalized eigenvalues.  | 
| WORK | 
 
(workspace) COMPLEX*16 array, dimension (N**2)
 
 | 
| RWORK | 
 
(workspace) DOUBLE PRECISION array, dimension (N)
 
 | 
| RESULT | 
 
(output) DOUBLE PRECISION array, dimension (2)
 
The values computed by the test described above.  If A E or 
B E is likely to overflow, then RESULT(1:2) is set to 10 / ulp.  |