/home/abui.../dtrevc3.f(3)
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dtrevc3.f
okay so this is the Library Functions Manual page for that file β the title vibe is /home/abui.../dtrevc3.f(3) β and it's literally the manual entry for DTREVC3. It computes eigenvectors and it is lowkey iconic, no cap. π¦
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine DTREVC3 (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr,
mm, m, work, lwork, info)
DTREVC3
π Function/Subroutine Documentation π
subroutine DTREVC3 (character side, character howmny, logical, dimension( *
) select, integer n, double precision, dimension( ldt, * ) t, integer
ldt, double precision, dimension( ldvl, * ) vl, integer ldvl, double
precision, dimension( ldvr, * ) vr, integer ldvr, integer mm, integer m,
double precision, dimension( * ) work, integer lwork, integer info)
DTREVC3
β¨ Purpose β¨
DTREVC3 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 DHSEQR.
The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by:
T*x = w*x, (y**T)*T = w*(y**T)
where y**T denotes the transpose of the vector y.
The eigenvalues are not input to this routine β they're 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.
This uses a Level 3 BLAS version of the back transformation. slay.
π Parameters π
SIDEβSIDE is CHARACTER*1= 'R': compute right eigenvectors only;= 'L': compute left eigenvectors only;= 'B': compute both right and left eigenvectors.
HOWMNYβHOWMNY is CHARACTER*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βSELECT is LOGICAL 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βN is INTEGER- The order of the matrix
T.N >= 0.
- The order of the matrix
TβT is DOUBLE PRECISION array, dimension (LDT,N)- The upper quasi-triangular matrix
Tin Schur canonical form.
- The upper quasi-triangular matrix
LDTβLDT is INTEGER- The leading dimension of the array
T.LDT >= max(1,N).
- The leading dimension of the array
VLβVL is DOUBLE PRECISION 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 byDHSEQR). - 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βLDVL is INTEGER- The leading dimension of the array
VL. LDVL >= 1, and ifSIDE = 'L'or'B',LDVL >= N.
- The leading dimension of the array
VRβVR is DOUBLE PRECISION 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 byDHSEQR). - 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βLDVR is INTEGER- The leading dimension of the array
VR. LDVR >= 1, and ifSIDE = 'R'or'B',LDVR >= N.
- The leading dimension of the array
MMβMM is INTEGER- The number of columns in the arrays
VLand/orVR.MM >= M.
- The number of columns in the arrays
MβM is INTEGER- 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βWORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))LWORKβLWORK is INTEGER- The dimension of array
WORK.LWORK >= max(1,3*N). - For optimum performance,
LWORK >= N + 2*N*NB, whereNBis the optimal blocksize. - If
LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA.
- The dimension of array
INFOβINFO is INTEGER= 0: successful exit< 0: ifINFO = -i, thei-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|.
Definition at line 235 of file dtrevc3.f.
π«Ά Author π«Ά
Generated automatically by Doxygen for LAPACK from the source code.
okay bestie that's the whole slay page π β source/version: LAPACK Version 3.12.0, footer path: /home/abui.../dtrevc3.f(3). stay eigen fabulous β¨π
π¦ 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