SRC/DEPRECATED/dggsvp.f(3)
β¨ NAME β¨
SRC/DEPRECATED/dggsvp.f β this is the manual page for the deprecated DGGSVP routine, from the Library Functions Manual (section 3). Sheβs retired, bestie, but the lore is still here. π
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine dggsvp (jobu, jobv, jobq, m, p, n, a, lda, b, ldb, tola, tolb, k, l, u, ldu, v, ldv, q, ldq, iwork, tau, work, info)DGGSVP
π Function/Subroutine Documentation π
subroutine dggsvp (character jobu, character jobv, character jobq, integer m, integer p, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( ldb, * ) b, integer ldb, double precision tola, double precision tolb, integer k, integer l, double precision, dimension( ldu, * ) u, integer ldu, double precision, dimension( ldv, * ) v, integer ldv, double precision, dimension( ldq, * ) q, integer ldq, integer, dimension( * ) iwork, double precision, dimension( * ) tau, double precision, dimension( * ) work, integer info)
DGGSVP
π Purpose π
Okay so real talk: this routine is deprecated and has been replaced by routine DGGSVP3. Not me being dramatic β thatβs literally in the source. π
DGGSVP computes orthogonal matrices U, V and Q such that:
N-K-L K L
U**T*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**T*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**T,B**T)**T.
This decomposition is the preprocessing step for computing the Generalized Singular Value Decomposition (GSVD), see subroutine DGGSVD. π«Ά
π Parameters π
JOBUβCHARACTER*1= 'U':Orthogonal matrixUis computed;= 'N':Uis not computed.
JOBVβCHARACTER*1= 'V':Orthogonal matrixVis computed;= 'N':Vis not computed.
JOBQβCHARACTER*1= 'Q':Orthogonal matrixQis computed;= 'N':Qis not computed.
MβINTEGER- The number of rows of the matrix
A.M >= 0.
- The number of rows of the matrix
PβINTEGER- The number of rows of the matrix
B.P >= 0.
- The number of rows of the matrix
NβINTEGER- The number of columns of the matrices
AandB.N >= 0.
- The number of columns of the matrices
AβDOUBLE PRECISION array, dimension (LDA,N)- On entry, the
M-by-NmatrixA. - On exit,
Acontains the triangular (or trapezoidal) matrix described in the Purpose section.
- On entry, the
LDAβINTEGER- The leading dimension of the array
A.LDA >= max(1,M).
- The leading dimension of the array
BβDOUBLE PRECISION array, dimension (LDB,N)- On entry, the
P-by-NmatrixB. - On exit,
Bcontains the triangular matrix described in the Purpose section.
- On entry, the
LDBβINTEGER- The leading dimension of the array
B.LDB >= max(1,P).
- The leading dimension of the array
TOLAβDOUBLE PRECISIONTOLBβDOUBLE PRECISION
TOLA and TOLB are the thresholds to determine the effective numerical rank of matrix B and a subblock of A. Generally, they are set to
TOLA = MAX(M,N)*norm(A)*MACHEPS,
TOLB = MAX(P,N)*norm(B)*MACHEPS.
The size of TOLA and TOLB may affect the size of backward errors of the decomposition.
KβINTEGERLβINTEGER- On exit,
KandLspecify the dimension of the subblocks described in Purpose section. K + L = effective numerical rank of (A**T,B**T)**T.
- On exit,
UβDOUBLE PRECISION array, dimension (LDU,M)- If
JOBU = 'U',Ucontains the orthogonal matrixU. - If
JOBU = 'N',Uis not referenced.
- If
LDUβINTEGER- The leading dimension of the array
U.LDU >= max(1,M)ifJOBU = 'U';LDU >= 1otherwise.
- The leading dimension of the array
VβDOUBLE PRECISION array, dimension (LDV,P)- If
JOBV = 'V',Vcontains the orthogonal matrixV. - If
JOBV = 'N',Vis not referenced.
- If
LDVβINTEGER- The leading dimension of the array
V.LDV >= max(1,P)ifJOBV = 'V';LDV >= 1otherwise.
- The leading dimension of the array
QβDOUBLE PRECISION array, dimension (LDQ,N)- If
JOBQ = 'Q',Qcontains the orthogonal matrixQ. - If
JOBQ = 'N',Qis not referenced.
- If
LDQβINTEGER- The leading dimension of the array
Q.LDQ >= max(1,N)ifJOBQ = 'Q';LDQ >= 1otherwise.
- The leading dimension of the array
IWORKβINTEGER array, dimension (N)TAUβDOUBLE PRECISION array, dimension (N)WORKβDOUBLE PRECISION array, dimension (max(3*N,M,P))INFOβ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 subroutine uses LAPACK subroutine DGEQPF 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 253 of file dggsvp.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
Bye bestie! Thatβs the whole page β from LAPACK Version 3.12.0, source SRC/DEPRECATED/dggsvp.f(3). Stay linear, stay orthogonal. πβ¨
π¦ 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