SRC/DEPRECATED/cggsvp.f(3)
πΈ SRC/DEPRECATED/cggsvp.f(3) πΈ
okay bestie, welcome to the Library Functions Manual page for SRC/DEPRECATED/cggsvp.f. This is the deprecated LAPACK corner of the universe, and we are keeping every single detail intact. π
πΈ NAME πΈ
SRC/DEPRECATED/cggsvp.f β that's the file, bestie. No cap.
β¨ SYNOPSIS β¨
Functions/Subroutines
There is literally one subroutine here and it is giving main character energy:
subroutine cggsvp (jobu, jobv, jobq, m, p, n, a, lda, b, ldb, tola,
tolb, k, l, u, ldu, v, ldv, q, ldq, iwork, rwork, tau, work, info)
CGGSVP
π«Ά Function/Subroutine Documentation π«Ά
cggsvp
subroutine cggsvp (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 info)
CGGSVP
Purpose π―
The page says it directly: this routine is deprecated and has been replaced by routine CGGSVP3. Not me being dramatic, that is literally the situation. π
CGGSVP 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 CGGSVD. π
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(3*N,M,P)).INFOβINFOisINTEGER.= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.
π Author π
The author list is literally:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π₯ Further Details π₯
The subroutine uses LAPACK subroutine CGEQPF 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.
Definition at line 259 of file cggsvp.f.
π Author (generated version) π
Generated automatically by Doxygen for LAPACK from the source code.
β¨ that's the whole page, bestie. Sign-off vibe: LAPACK Version 3.12.0, source SRC/DEPRECATED/cggsvp.f(3), and no date listed in the footer β love that for us. ππ
π¦ 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