zget52.f3
Usage
Functions/Subroutines
subroutine zget52 (left, n, a, lda, b, ldb, e, lde, alpha, beta, work, rwork, result)
ZGET52
Function/Subroutine Documentation
subroutine zget52 (logical left, integer n, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( ldb, * ) b, integer ldb, complex*16, dimension( lde, * ) e, integer lde, complex*16, dimension( * ) alpha, complex*16, dimension( * ) beta, complex*16, dimension( * ) work, double precision, dimension( * ) rwork, double precision, dimension( 2 ) result)
ZGET52
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 !> of its elements is 1, where in this case, !> of a complex value x is |Re(x)| + |Im(x)| ; let us call this !> maximum 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) !> !>
Parameters
LEFT
!> LEFT is 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
!> N is INTEGER !> The size of the matrices. If it is zero, ZGET52 does !> nothing. It must be at least zero. !>
A
!> A is COMPLEX*16 array, dimension (LDA, N) !> The matrix A. !>
LDA
!> LDA is INTEGER !> The leading dimension of A. It must be at least 1 !> and at least N. !>
B
!> B is COMPLEX*16 array, dimension (LDB, N) !> The matrix B. !>
LDB
!> LDB is INTEGER !> The leading dimension of B. It must be at least 1 !> and at least N. !>
E
!> E is COMPLEX*16 array, dimension (LDE, N) !> The matrix of eigenvectors. It must be O( 1 ). !>
LDE
!> LDE is INTEGER !> The leading dimension of E. It must be at least 1 and at !> least N. !>
ALPHA
!> ALPHA is COMPLEX*16 array, dimension (N) !> The values a(i) as described above, which, along with b(i), !> define the generalized eigenvalues. !>
BETA
!> BETA is COMPLEX*16 array, dimension (N) !> The values b(i) as described above, which, along with a(i), !> define the generalized eigenvalues. !>
WORK
!> WORK is COMPLEX*16 array, dimension (N**2) !>
RWORK
!> RWORK is DOUBLE PRECISION array, dimension (N) !>
RESULT
!> RESULT is 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. !>
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 160 of file zget52.f.