/home/abui...D/zggsvp.f(3)
π NAME π
Manual name: Library Functions Manual. Page: /home/abui...D/zggsvp.f(3).
The actual file this page is serving is:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/DEPRECATED/zggsvp.f
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ZGGSVP (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)
That's ZGGSVP, the subroutine in question. π
π¦ Function/Subroutine Documentation π¦
subroutine ZGGSVP (character jobu, character jobv, character jobq, integer
m, integer p, integer n, complex*16, dimension( lda, * ) a, integer lda,
complex*16, dimension( ldb, * ) b, integer ldb, double precision tola,
double precision tolb, integer k, integer l, complex*16, dimension( ldu,
* ) u, integer ldu, complex*16, dimension( ldv, * ) v, integer ldv,
complex*16, dimension( ldq, * ) q, integer ldq, integer, dimension( * )
iwork, double precision, dimension( * ) rwork, complex*16, dimension( *
) tau, complex*16, dimension( * ) work, integer info)
ZGGSVP is the main character here. π«Ά
Purpose π
β οΈ Deprecated alert: this routine is deprecated and has been replaced by routine ZGGSVP3.
ZGGSVP 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 ZGGSVD.
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βAisCOMPLEX*16array, 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βBisCOMPLEX*16array, 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βTOLAisDOUBLE PRECISION.TOLBβTOLBisDOUBLE PRECISION.TOLAandTOLBare the thresholds to determine the effective numerical rank of matrixBand a subblock ofA. Generally, they are set toTOLA = MAX(M,N)*norm(A)*MAZHEPS,TOLB = MAX(P,N)*norm(B)*MAZHEPS. 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βUisCOMPLEX*16array, 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βVisCOMPLEX*16array, 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βQisCOMPLEX*16array, 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βRWORKisDOUBLE PRECISIONarray, dimension(2*N).TAUβTAUisCOMPLEX*16array, dimension(N).WORKβWORKisCOMPLEX*16array, dimension(max(3*N,M,P)).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 ZGEQPF 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 262 of file zggsvp.f.
Author π«
Generated automatically by Doxygen for LAPACK from the source code.
Big sparkly sign-off: LAPACK Version 3.12.0, page /home/abui...D/zggsvp.f(3). That's the footer, wrapped in a bow β bye bestie, go get that GSVD π
β¨
π¦ 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