ZTGEVC(3)
okay so welcome to ztgevc.f(3) from the Library Functions Manual β this is where LAPACK does eigenvector math and weβre gonna make it make sense, bestie. π
β¨
π NAME π
the whole NAME section is literally just this file path: /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/ztgevc.f β periodt. π
πΈ SYNOPSIS πΈ
π§ Functions/Subroutines π§
subroutine ZTGEVC (side, howmny, select, n, s, lds, p, ldp, vl, ldvl,
vr, ldvr, mm, m, work, rwork, info)
ZTGEVC
β¨ Function/Subroutine Documentation β¨
π«Ά ZTGEVC π«Ά
subroutine ZTGEVC (character side, character howmny, logical, dimension( * )
select, integer n, complex*16, dimension( lds, * ) s, integer lds,
complex*16, dimension( ldp, * ) p, integer ldp, complex*16, dimension(
ldvl, * ) vl, integer ldvl, complex*16, dimension( ldvr, * ) vr, integer
ldvr, integer mm, integer m, complex*16, dimension( * ) work, double
precision, dimension( * ) rwork, integer info)
ZTGEVC
π₯ Purpose π₯
okay so ZTGEVC computes some or all of the right and/or left eigenvectors of a pair of complex matrices (S,P), where S and P are upper triangular. this matrix-pair situation is produced by the generalized Schur factorization of a complex matrix pair (A,B):
A = Q*S*Z**H, B = Q*P*Z**H
as computed by ZGGHRD + ZHGEQZ. slay. π
the right eigenvector x and the left eigenvector y of (S,P) corresponding to an eigenvalue w are defined by:
S*x = w*P*x, (y**H)*S = w*(y**H)*P,
where y**H denotes the conjugate transpose of y. the eigenvalues are not input to this routine β theyβre computed directly from the diagonal elements of S and P. no cap. π¦
this routine returns the matrices X and/or Y of right and left eigenvectors of (S,P), or the products Z*X and/or Q*Y, where Z and Q are input matrices. and if Q and Z are the unitary factors from the generalized Schur factorization of a matrix pair (A,B), then Z*X and Q*Y are the matrices of right and left eigenvectors of (A,B). iconic behavior. π
π Parameters π
SIDEβCHARACTER*1. the side selector, bestie:= 'R': compute right eigenvectors only;= 'L': compute left eigenvectors only;= 'B': compute both right and left eigenvectors.
HOWMNYβCHARACTER*1. how many / which ones:= '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, specified by the logical arraySELECT.
SELECTβLOGICALarray,dimension (N). ifHOWMNY='S',SELECTspecifies the eigenvectors to be computed. the eigenvector corresponding to the j-th eigenvalue is computed ifSELECT(j) = .TRUE.. not referenced ifHOWMNY = 'A'or'B'. πNβINTEGER. the order of the matricesSandP.N >= 0.SβCOMPLEX*16array,dimension (LDS,N). the upper triangular matrixSfrom a generalized Schur factorization, as computed byZHGEQZ.LDSβINTEGER. the leading dimension of arrayS.LDS >= max(1,N).PβCOMPLEX*16array,dimension (LDP,N). the upper triangular matrixPfrom a generalized Schur factorization, as computed byZHGEQZ.Pmust have real diagonal elements. yes, real ones. πΈLDPβINTEGER. the leading dimension of arrayP.LDP >= max(1,N).VLβCOMPLEX*16array,dimension (LDVL,MM). on entry, ifSIDE = 'L'or'B'andHOWMNY = 'B',VLmust contain anN-by-NmatrixQ(usually the unitary matrixQof left Schur vectors returned byZHGEQZ). on exit, ifSIDE = 'L'or'B',VLcontains:- if
HOWMNY = 'A', the matrixYof left eigenvectors of(S,P); - if
HOWMNY = 'B', the matrixQ*Y; - if
HOWMNY = 'S', the left eigenvectors of(S,P)specified bySELECT, stored consecutively in the columns ofVL, in the same order as their eigenvalues. not referenced ifSIDE = 'R'. π
- if
LDVLβINTEGER. the leading dimension of arrayVL.LDVL >= 1, and ifSIDE = 'L'or'l'or'B'or'b',LDVL >= N. (yes lowercase'l'and'b'are in there too, iykyk.)VRβCOMPLEX*16array,dimension (LDVR,MM). on entry, ifSIDE = 'R'or'B'andHOWMNY = 'B',VRmust contain anN-by-NmatrixZ(usually the unitary matrixZof right Schur vectors returned byZHGEQZ). on exit, ifSIDE = 'R'or'B',VRcontains:- if
HOWMNY = 'A', the matrixXof right eigenvectors of(S,P); - if
HOWMNY = 'B', the matrixZ*X; - if
HOWMNY = 'S', the right eigenvectors of(S,P)specified bySELECT, stored consecutively in the columns ofVR, in the same order as their eigenvalues. not referenced ifSIDE = 'L'. π¦
- if
LDVRβINTEGER. the leading dimension of the arrayVR.LDVR >= 1, and ifSIDE = 'R'or'B',LDVR >= N.MMβINTEGER. the number of columns in the arraysVLand/orVR.MM >= M.MβINTEGER. the number of columns in the arraysVLand/orVRactually used to store the eigenvectors. ifHOWMNY = 'A'or'B',Mis set toN. each selected eigenvector occupies one column. one column per selected eigenvector, slay. πWORKβCOMPLEX*16array,dimension (2*N).RWORKβDOUBLE PRECISIONarray,dimension (2*N).INFOβINTEGER. the exit-status bestie:= 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.
π Definition at line 217 of file ztgevc.f π
yes, thatβs the line. π
π§ Author π§
generated automatically by Doxygen for LAPACK from the source code. iconic.
xoxo, LAPACK Version 3.12.0, source /home/abui...RC/ztgevc.f(3) πβ¨
π¦ 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