.TH "TESTING/EIG/dget52.f" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME TESTING/EIG/dget52.f .SH SYNOPSIS .br .PP .SS "Functions/Subroutines" .in +1c .ti -1c .RI "subroutine \fBdget52\fP (left, n, a, lda, b, ldb, e, \fBlde\fP, alphar, alphai, beta, work, result)" .br .RI "\fBDGET52\fP " .in -1c .SH "Function/Subroutine Documentation" .PP .SS "subroutine dget52 (logical left, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( ldb, * ) b, integer ldb, double precision, dimension( \fBlde\fP, * ) e, integer lde, double precision, dimension( * ) alphar, double precision, dimension( * ) alphai, double precision, dimension( * ) beta, double precision, dimension( * ) work, double precision, dimension( 2 ) result)" .PP \fBDGET52\fP .PP \fBPurpose:\fP .RS 4 .PP .nf DGET52 does an eigenvector check for the generalized eigenvalue problem\&. The basic test for right eigenvectors is: | b(j) A E(j) - a(j) B E(j) | RESULT(1) = max ------------------------------- j n ulp max( |b(j) A|, |a(j) B| ) using the 1-norm\&. Here, a(j)/b(j) = w is the j-th generalized eigenvalue of A - w B, or, equivalently, b(j)/a(j) = m is the j-th generalized eigenvalue of m A - B\&. For real eigenvalues, the test is straightforward\&. For complex eigenvalues, E(j) and a(j) are complex, represented by Er(j) + i*Ei(j) and ar(j) + i*ai(j), resp\&., so the test for that eigenvector becomes max( |Wr|, |Wi| ) -------------------------------------------- n ulp max( |b(j) A|, (|ar(j)|+|ai(j)|) |B| ) where Wr = b(j) A Er(j) - ar(j) B Er(j) + ai(j) B Ei(j) Wi = b(j) A Ei(j) - ai(j) B Er(j) - ar(j) B Ei(j) T T _ For left eigenvectors, A , B , a, and b are used\&. DGET52 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(j)=b(j)=0, then the eigenvector is set to be the jth coordinate vector\&. The normalization test is: RESULT(2) = max | M(v(j)) - 1 | / ( n ulp ) eigenvectors v(j) .fi .PP .RE .PP \fBParameters\fP .RS 4 \fILEFT\fP .PP .nf 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\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER The size of the matrices\&. If it is zero, DGET52 does nothing\&. It must be at least zero\&. .fi .PP .br \fIA\fP .PP .nf A is DOUBLE PRECISION array, dimension (LDA, N) The matrix A\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of A\&. It must be at least 1 and at least N\&. .fi .PP .br \fIB\fP .PP .nf B is DOUBLE PRECISION array, dimension (LDB, N) The matrix B\&. .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER The leading dimension of B\&. It must be at least 1 and at least N\&. .fi .PP .br \fIE\fP .PP .nf E is DOUBLE PRECISION array, dimension (LDE, N) The matrix of eigenvectors\&. It must be O( 1 )\&. Complex eigenvalues and eigenvectors always come in pairs, the eigenvalue and its conjugate being stored in adjacent elements of ALPHAR, ALPHAI, and BETA\&. Thus, if a(j)/b(j) and a(j+1)/b(j+1) are a complex conjugate pair of generalized eigenvalues, then E(,j) contains the real part of the eigenvector and E(,j+1) contains the imaginary part\&. Note that whether E(,j) is a real eigenvector or part of a complex one is specified by whether ALPHAI(j) is zero or not\&. .fi .PP .br \fILDE\fP .PP .nf LDE is INTEGER The leading dimension of E\&. It must be at least 1 and at least N\&. .fi .PP .br \fIALPHAR\fP .PP .nf ALPHAR is DOUBLE PRECISION array, dimension (N) The real parts of the values a(j) as described above, which, along with b(j), define the generalized eigenvalues\&. Complex eigenvalues always come in complex conjugate pairs a(j)/b(j) and a(j+1)/b(j+1), which are stored in adjacent elements in ALPHAR, ALPHAI, and BETA\&. Thus, if the j-th and (j+1)-st eigenvalues form a pair, ALPHAR(j+1)/BETA(j+1) is assumed to be equal to ALPHAR(j)/BETA(j)\&. .fi .PP .br \fIALPHAI\fP .PP .nf ALPHAI is DOUBLE PRECISION array, dimension (N) The imaginary parts of the values a(j) as described above, which, along with b(j), define the generalized eigenvalues\&. If ALPHAI(j)=0, then the eigenvalue is real, otherwise it is part of a complex conjugate pair\&. Complex eigenvalues always come in complex conjugate pairs a(j)/b(j) and a(j+1)/b(j+1), which are stored in adjacent elements in ALPHAR, ALPHAI, and BETA\&. Thus, if the j-th and (j+1)-st eigenvalues form a pair, ALPHAI(j+1)/BETA(j+1) is assumed to be equal to -ALPHAI(j)/BETA(j)\&. Also, nonzero values in ALPHAI are assumed to always come in adjacent pairs\&. .fi .PP .br \fIBETA\fP .PP .nf BETA is DOUBLE PRECISION array, dimension (N) The values b(j) as described above, which, along with a(j), define the generalized eigenvalues\&. .fi .PP .br \fIWORK\fP .PP .nf WORK is DOUBLE PRECISION array, dimension (N**2+N) .fi .PP .br \fIRESULT\fP .PP .nf 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\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP .PP Definition at line \fB197\fP of file \fBdget52\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.