.TH "TESTING/EIG/sget52.f" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME TESTING/EIG/sget52.f .SH SYNOPSIS .br .PP .SS "Functions/Subroutines" .in +1c .ti -1c .RI "subroutine \fBsget52\fP (left, n, a, lda, b, ldb, e, \fBlde\fP, alphar, alphai, beta, work, result)" .br .RI "\fBSGET52\fP " .in -1c .SH "Function/Subroutine Documentation" .PP .SS "subroutine sget52 (logical left, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b, integer ldb, real, dimension( \fBlde\fP, * ) e, integer lde, real, dimension( * ) alphar, real, dimension( * ) alphai, real, dimension( * ) beta, real, dimension( * ) work, real, dimension( 2 ) result)" .PP \fBSGET52\fP .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> SGET52 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\&. !> !> SGET52 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(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, SGET52 does !> nothing\&. It must be at least zero\&. !> .fi .PP .br \fIA\fP .PP .nf !> A is REAL 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 REAL 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 REAL 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 REAL 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 REAL 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 REAL 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 REAL array, dimension (N**2+N) !> .fi .PP .br \fIRESULT\fP .PP .nf !> RESULT is REAL 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 \fBsget52\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.