STREVC(3)
π STREVC(3) β Library Functions Manual π
okay so bestie, this is the STREVC(3) page from the Library Functions Manual, and the file itβs documenting is /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/strevc.f. Yes, thatβs the whole path β itβs giving build-server realness π.
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/strevc.f β thatβs the file this page is about, bestie. STREVC is the main character here.
π§ SYNOPSIS π§
Functions/Subroutines
subroutine STREVC (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr,
mm, m, work, info)
STREVC
β¨ Function/Subroutine Documentation β¨
subroutine STREVC (character side, character howmny, logical, dimension( * )
select, integer n, real, dimension( ldt, * ) t, integer ldt, real,
dimension( ldvl, * ) vl, integer ldvl, real, dimension( ldvr, * ) vr,
integer ldvr, integer mm, integer m, real, dimension( * ) work, integer
info)
STREVC
π― Purpose
STREVC computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by SHSEQR.
The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by:
T*x = w*x, (y**H)*T = w*(y**H)
where y**H denotes the conjugate transpose of y.
The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T.
This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. math slay β¨
π§Έ Parameters
SIDE
SIDEisCHARACTER*1.= 'R': compute right eigenvectors only;= 'L': compute left eigenvectors only;= 'B': compute both right and left eigenvectors.
HOWMNY
HOWMNYisCHARACTER*1.= 'A': compute all right and/or left eigenvectors;= 'B': compute all right and/or left eigenvectors, backtransformed by the matrices inVRand/orVL;= 'S': compute selected right and/or left eigenvectors, as indicated by the logical arraySELECT.
SELECT
SELECTisLOGICAL array, dimension (N).- If
HOWMNY = 'S',SELECTspecifies the eigenvectors to be computed. - If
w(j)is a real eigenvalue, the corresponding real eigenvector is computed ifSELECT(j)is.TRUE.. - If
w(j)andw(j+1)are the real and imaginary parts of a complex eigenvalue, the corresponding complex eigenvector is computed if eitherSELECT(j)orSELECT(j+1)is.TRUE., and on exitSELECT(j)is set to.TRUE.andSELECT(j+1)is set to.FALSE.. - Not referenced if
HOWMNY = 'A'or'B'.
- If
N
NisINTEGER.- The order of the matrix
T.N >= 0.
- The order of the matrix
T
TisREAL array, dimension (LDT,N).- The upper quasi-triangular matrix
Tin Schur canonical form.
- The upper quasi-triangular matrix
LDT
LDTisINTEGER.- The leading dimension of the array
T.LDT >= max(1,N).
- The leading dimension of the array
VL
VLisREAL array, dimension (LDVL,MM).- On entry, if
SIDE = 'L'or'B'andHOWMNY = 'B',VLmust contain anN-by-NmatrixQ(usually the orthogonal matrixQof Schur vectors returned bySHSEQR). - On exit, if
SIDE = 'L'or'B',VLcontains:- if
HOWMNY = 'A', the matrixYof left eigenvectors ofT; - if
HOWMNY = 'B', the matrixQ*Y; - if
HOWMNY = 'S', the left eigenvectors ofTspecified bySELECT, stored consecutively in the columns ofVL, in the same order as their eigenvalues.
- if
- A complex eigenvector corresponding to a complex eigenvalue is stored in two consecutive columns, the first holding the real part, and the second the imaginary part.
- Not referenced if
SIDE = 'R'.
- On entry, if
LDVL
LDVLisINTEGER.- The leading dimension of the array
VL.LDVL >= 1, and ifSIDE = 'L'or'B',LDVL >= N.
- The leading dimension of the array
VR
VRisREAL array, dimension (LDVR,MM).- On entry, if
SIDE = 'R'or'B'andHOWMNY = 'B',VRmust contain anN-by-NmatrixQ(usually the orthogonal matrixQof Schur vectors returned bySHSEQR). - On exit, if
SIDE = 'R'or'B',VRcontains:- if
HOWMNY = 'A', the matrixXof right eigenvectors ofT; - if
HOWMNY = 'B', the matrixQ*X; - if
HOWMNY = 'S', the right eigenvectors ofTspecified bySELECT, stored consecutively in the columns ofVR, in the same order as their eigenvalues.
- if
- A complex eigenvector corresponding to a complex eigenvalue is stored in two consecutive columns, the first holding the real part and the second the imaginary part.
- Not referenced if
SIDE = 'L'.
- On entry, if
LDVR
LDVRisINTEGER.- The leading dimension of the array
VR.LDVR >= 1, and ifSIDE = 'R'or'B',LDVR >= N.
- The leading dimension of the array
MM
MMisINTEGER.- The number of columns in the arrays
VLand/orVR.MM >= M.
- The number of columns in the arrays
M
MisINTEGER.- The number of columns in the arrays
VLand/orVRactually used to store the eigenvectors. - If
HOWMNY = 'A'or'B',Mis set toN. - Each selected real eigenvector occupies one column and each selected complex eigenvector occupies two columns.
- The number of columns in the arrays
WORK
WORKisREAL array, dimension (3*N).
INFO
INFOisINTEGER.= 0: successful exit.< 0: ifINFO = -i, the i-th argument had an illegal value.
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
π Further Details
The algorithm used in this program is basically backward (forward) substitution, with scaling to make the code robust against possible overflow.
Each eigenvector is normalized so that the element of largest magnitude has magnitude 1; here the magnitude of a complex number (x,y) is taken to be |x| + |y|. normalization ate, no crumbs π
Definition at line 220 of file strevc.f.
π€ Author
Generated automatically by Doxygen for LAPACK from the source code.
π Footer sign-off, bestie: LAPACK Version 3.12.0, path /home/abui...RC/strevc.f(3) β no date in that footer line, so Iβm not making one up. periodt π«Ά
π¦ 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