SRC/cggsvp3.f(3)
πΈ NAME πΈ
SRC/cggsvp3.f β okay bestie, this is the Library Functions Manual entry for SRC/cggsvp3.f(3), and it is literally all about the CGGSVP3 subroutine. π«Ά
π SYNOPSIS π
Functions/Subroutines
subroutine cggsvp3 (jobu, jobv, jobq, m, p, n, a, lda, b, ldb, tola, tolb, k, l, u, ldu, v, ldv, q, ldq, iwork, rwork, tau, work, lwork, info)
CGGSVP3
π Function/Subroutine Documentation π
subroutine cggsvp3 (character jobu, character jobv, character jobq, integer m, integer p, integer n, complex, dimension( lda, * ) a, integer lda, complex, dimension( ldb, * ) b, integer ldb, real tola, real tolb, integer k, integer l, complex, dimension( ldu, * ) u, integer ldu, complex, dimension( ldv, * ) v, integer ldv, complex, dimension( ldq, * ) q, integer ldq, integer, dimension( * ) iwork, real, dimension( * ) rwork, complex, dimension( * ) tau, complex, dimension( * ) work, integer lwork, integer info)
CGGSVP3
π¦ Purpose π¦
CGGSVP3 computes unitary matrices U, V and Q such that
N-K-L K L
U**H*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0;
L ( 0 0 A23 )
M-K-L ( 0 0 0 )
N-K-L K L
= K ( 0 A12 A13 ) if M-K-L < 0;
M-K ( 0 0 A23 )
N-K-L K L
V**H*B*Q = L ( 0 0 B13 )
P-L ( 0 0 0 )
where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0, otherwise A23 is (M-K)-by-L upper trapezoidal. K+L = the effective numerical rank of the (M+P)-by-N matrix (A**H,B**H)**H.
This decomposition is the preprocessing step for computing the Generalized Singular Value Decomposition (GSVD), see subroutine CGGSVD3. iconic behavior, honestly. π
π Parameters π
JOBUβJOBUisCHARACTER*1.= 'U':Unitary matrixUis computed;= 'N':Uis not computed. β¨JOBVβJOBVisCHARACTER*1.= 'V':Unitary matrixVis computed;= 'N':Vis not computed. β¨JOBQβJOBQisCHARACTER*1.= 'Q':Unitary matrixQis computed;= 'N':Qis not computed. β¨MβMisINTEGER. The number of rows of the matrixA.M >= 0.PβPisINTEGER. The number of rows of the matrixB.P >= 0.NβNisINTEGER. The number of columns of the matricesAandB.N >= 0.AβAisCOMPLEXarray, dimension(LDA,N). On entry, theM-by-NmatrixA. On exit,Acontains the triangular (or trapezoidal) matrix described in the Purpose section. π¦LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,M).BβBisCOMPLEXarray, dimension(LDB,N). On entry, theP-by-NmatrixB. On exit,Bcontains the triangular matrix described in the Purpose section. π¦LDBβLDBisINTEGER. The leading dimension of the arrayB.LDB >= max(1,P).TOLAβTOLAisREAL.TOLBβTOLBisREAL.TOLAandTOLBare the thresholds to determine the effective numerical rank of matrixBand a subblock ofA. Generally, they are set toTOLA = MAX(M,N)*norm(A)*MACHEPS,TOLB = MAX(P,N)*norm(B)*MACHEPS.The size ofTOLAandTOLBmay affect the size of backward errors of the decomposition. πKβKisINTEGER.LβLisINTEGER. On exit,KandLspecify the dimension of the subblocks described in Purpose section.K + L= effective numerical rank of(A**H,B**H)**H. πUβUisCOMPLEXarray, dimension(LDU,M). IfJOBU = 'U',Ucontains the unitary matrixU. IfJOBU = 'N',Uis not referenced.LDUβLDUisINTEGER. The leading dimension of the arrayU.LDU >= max(1,M)ifJOBU = 'U';LDU >= 1otherwise.VβVisCOMPLEXarray, dimension(LDV,P). IfJOBV = 'V',Vcontains the unitary matrixV. IfJOBV = 'N',Vis not referenced.LDVβLDVisINTEGER. The leading dimension of the arrayV.LDV >= max(1,P)ifJOBV = 'V';LDV >= 1otherwise.QβQisCOMPLEXarray, dimension(LDQ,N). IfJOBQ = 'Q',Qcontains the unitary matrixQ. IfJOBQ = 'N',Qis not referenced.LDQβLDQisINTEGER. The leading dimension of the arrayQ.LDQ >= max(1,N)ifJOBQ = 'Q';LDQ >= 1otherwise.IWORKβIWORKisINTEGERarray, dimension(N).RWORKβRWORKisREALarray, dimension(2*N).TAUβTAUisCOMPLEXarray, dimension(N).WORKβWORKisCOMPLEXarray, dimension(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORKisINTEGER. The dimension of the arrayWORK.LWORK >= 1. IfLWORK = -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. no cap, read that twice if you gotta. π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 subroutine uses LAPACK subroutine CGEQP3 for the QR factorization with column pivoting to detect the effective numerical rank of the a matrix. It may be replaced by a better rank determination strategy.
β οΈ Deprecated alert:CGGSVP3replaces the deprecated subroutineCGGSVP. That is the tea. π«
Definition at line 275 of file cggsvp3.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
Alright bestie, that is the whole page β LAPACK, Version 3.12.0, source SRC/cggsvp3.f(3). Slay. π
β¨
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms