TESTING/EIG/cget52.f(3)

πŸ“¦
version 3.12.1 Β· 2 versions
, in arch rolling

πŸ’– NAME πŸ’–

TESTING/EIG/cget52.f β€” bestie, this is the TESTING/EIG/cget52.f(3) page straight from the LAPACK Library Functions Manual, and it's all about the CGET52 eigenvector check. 🫢


✨ SYNOPSIS ✨

Functions/Subroutines
       subroutine cget52 (left, n, a, lda, b, ldb, e, lde, alpha, beta, work,
           rwork, result)
           CGET52

🌸 Function/Subroutine Documentation 🌸

   subroutine cget52 (logical left, integer n, complex, dimension( lda, * ) a,
       integer lda, complex, dimension( ldb, * ) b, integer ldb, complex,
       dimension( lde, * ) e, integer lde, complex, dimension( * ) alpha,
       complex, dimension( * ) beta, complex, dimension( * ) work, real,
       dimension( * ) rwork, real, dimension( 2 ) result)
       CGET52

πŸŽ€ Purpose πŸŽ€

okay so CGET52 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| )

and it's 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.

For left eigenvectors, the H / bar versions of A, B, a, and b are used, like this:

                         H   H  _      _
For left eigenvectors, A , B , a, and b  are used.

CGET52 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 the magnitude of a complex value x is |Re(x)| + |Im(x)|; call the maximum for 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 β€” is LOGICAL. .TRUE. means the eigenvectors in the columns of E are assumed to be left eigenvectors. .FALSE. means the eigenvectors in the columns of E are assumed to be right eigenvectors.
  • N β€” is INTEGER, the size of the matrices. If it is zero, CGET52 does nothing. It must be at least zero.
  • A β€” is COMPLEX array, dimension (LDA, N), the matrix A.
  • LDA β€” is INTEGER, the leading dimension of A. It must be at least 1 and at least N.
  • B β€” is COMPLEX array, dimension (LDB, N), the matrix B.
  • LDB β€” is INTEGER, the leading dimension of B. It must be at least 1 and at least N.
  • E β€” is COMPLEX array, dimension (LDE, N), the matrix of eigenvectors. It must be O( 1 ).
  • LDE β€” is INTEGER, the leading dimension of E. It must be at least 1 and at least N.
  • ALPHA β€” is COMPLEX array, dimension (N), the values a(i) as described above, which, along with b(i), define the generalized eigenvalues.
  • BETA β€” is COMPLEX array, dimension (N), the values b(i) as described above, which, along with a(i), define the generalized eigenvalues.
  • WORK β€” is COMPLEX array, dimension (N**2).
  • RWORK β€” is REAL array, dimension (N).
  • 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.
bestie, that overflow note is a real one: if A E or B E looks like it's gonna overflow, RESULT(1:2) gets set to 10 / ulp. no cap. πŸ’€

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

πŸ“ Definition at line 159 of file cget52.f.


🧚 Author 🧚

Generated automatically by Doxygen for LAPACK from the source code.


🫢 footer energy: this page is from the LAPACK source, Version 3.12.0, for TESTING/EIG/cget52.f(3) β€” no date listed, just the version β€” and that's the whole manual page, bestie. πŸ’–

πŸ“¦ where this page comes from