SGET52(3)
π SGET52(3) β the eigenvector vibe check π
okay so this is the SGET52(3) page from the LAPACK Library Functions Manual, manpage file /home/abui...IG/sget52.f(3). Buckle up bestie, we're checking eigenvectors for the generalized eigenvalue problem, and it's giving linear algebra main character energy. π
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/sget52.f
That's the file, obvi. This page is for SGET52. β¨
β¨ SYNOPSIS β¨
Functions/Subroutines
SGET52β the subroutine, signature in the code block below:
subroutine SGET52 (left, n, a, lda, b, ldb, e, lde, alphar, alphai,
beta, work, result)
SGET52
π Function/Subroutine Documentation π
subroutine SGET52 (logical left, integer n, real, dimension( lda, * ) a,
integer lda, real, dimension( ldb, * ) b, integer ldb, real, dimension(
lde, * ) e, integer lde, real, dimension( * ) alphar, real, dimension( *
) alphai, real, dimension( * ) beta, real, dimension( * ) work, real,
dimension( 2 ) result)
SGET52
π₯ Purpose π₯
okay so SGET52 does an eigenvector check for the generalized eigenvalue problem. No cap.
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)
For left eigenvectors, this exact comment block is used:
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, the size 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)
π Parameters π
LEFTβLEFT is LOGICAL.=.TRUE.: the eigenvectors in the columns ofEare assumed to be left eigenvectors.=.FALSE.: the eigenvectors in the columns ofEare assumed to be right eigenvectors.NβN is INTEGER. The size of the matrices. If it is zero,SGET52does nothing. It must be at least zero.AβA is REAL array, dimension (LDA, N). The matrixA.LDAβLDA is INTEGER. The leading dimension ofA. It must be at least 1 and at leastN.BβB is REAL array, dimension (LDB, N). The matrixB.LDBβLDB is INTEGER. The leading dimension ofB. It must be at least 1 and at leastN.EβE is REAL array, dimension (LDE, N). The matrix of eigenvectors. It must beO( 1 ). Complex eigenvalues and eigenvectors always come in pairs, the eigenvalue and its conjugate being stored in adjacent elements ofALPHAR,ALPHAI, andBETA. Thus, ifa(j)/b(j)anda(j+1)/b(j+1)are a complex conjugate pair of generalized eigenvalues, thenE(,j)contains the real part of the eigenvector andE(,j+1)contains the imaginary part. Note that whetherE(,j)is a real eigenvector or part of a complex one is specified by whetherALPHAI(j)is zero or not.LDEβLDE is INTEGER. The leading dimension ofE. It must be at least 1 and at leastN.ALPHARβALPHAR is REAL array, dimension (N). The real parts of the valuesa(j)as described above, which, along withb(j), define the generalized eigenvalues. Complex eigenvalues always come in complex conjugate pairsa(j)/b(j)anda(j+1)/b(j+1), which are stored in adjacent elements inALPHAR,ALPHAI, andBETA. Thus, if the j-th and (j+1)-st eigenvalues form a pair,ALPHAR(j+1)/BETA(j+1)is assumed to be equal toALPHAR(j)/BETA(j).ALPHAIβALPHAI is REAL array, dimension (N). The imaginary parts of the valuesa(j)as described above, which, along withb(j), define the generalized eigenvalues. IfALPHAI(j)=0, then the eigenvalue is real, otherwise it is part of a complex conjugate pair. Complex eigenvalues always come in complex conjugate pairsa(j)/b(j)anda(j+1)/b(j+1), which are stored in adjacent elements inALPHAR,ALPHAI, andBETA. 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 inALPHAIare assumed to always come in adjacent pairs.BETAβBETA is REAL array, dimension (N). The valuesb(j)as described above, which, along witha(j), define the generalized eigenvalues.WORKβWORK is REAL array, dimension (N**2+N).RESULTβRESULT is REAL array, dimension (2). The values computed by the test described above. IfA EorB Eis likely to overflow, thenRESULT(1:2)is set to10 / ulp.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 197 of file sget52.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
that's the whole page, bestie π«Ά β footer tea: LAPACK Version 3.12.0, and the manpage path is /home/abui...IG/sget52.f(3). No date to report, just those deets. byeee π
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms