/home/abui...D/cggsvp.f(3)
πΈ NAME πΈ
hey bestie π you're reading the Library Functions Manual page for /home/abui...D/cggsvp.f(3), and the file it documents is:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/DEPRECATED/cggsvp.f
β¨ SYNOPSIS β¨
π Functions/Subroutines π
Here's the synopsis, copy-paste exact:
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 π
The typed-out signature, exactly as written:
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 π¦
okay so first thing, bestie: this routine is deprecated and has been replaced by routine CGGSVP3. not me showing up late to the function party π But here's the whole vibe:
!>
!> This routine is deprecated and has been replaced by routine CGGSVP3.
!>
!> 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βCHARACTER*1; the "do we computeU?" switch.= 'U': Unitary matrixUis computed.= 'N':Uis not computed.
JOBVβCHARACTER*1; the "do we computeV?" switch.= 'V': Unitary matrixVis computed.= 'N':Vis not computed.
JOBQβCHARACTER*1; the "do we computeQ?" switch.= 'Q': Unitary matrixQis computed.= 'N':Qis not computed.
MβINTEGER. The number of rows of the matrixA.M >= 0.PβINTEGER. The number of rows of the matrixB.P >= 0.NβINTEGER. The number of columns of the matricesAandB.N >= 0.AβCOMPLEX array, dimension (LDA,N). On entry, theM-by-NmatrixA. On exit,Acontains the triangular (or trapezoidal) matrix described in the Purpose section.LDAβINTEGER. The leading dimension of the arrayA.LDA >= max(1,M).BβCOMPLEX array, dimension (LDB,N). On entry, theP-by-NmatrixB. On exit,Bcontains the triangular matrix described in the Purpose section.LDBβINTEGER. The leading dimension of the arrayB.LDB >= max(1,P).TOLAβREAL.TOLBβREAL.
TOLA and TOLB together 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βINTEGER.LβINTEGER.
On exit, K and L specify the dimension of the subblocks described in the Purpose section. K + L = effective numerical rank of (A**H,B**H)**H.
UβCOMPLEX array, dimension (LDU,M). IfJOBU = 'U',Ucontains the unitary matrixU. IfJOBU = 'N',Uis not referenced.LDUβINTEGER. The leading dimension of the arrayU.LDU >= max(1,M)ifJOBU = 'U';LDU >= 1otherwise.VβCOMPLEX array, dimension (LDV,P). IfJOBV = 'V',Vcontains the unitary matrixV. IfJOBV = 'N',Vis not referenced.LDVβINTEGER. The leading dimension of the arrayV.LDV >= max(1,P)ifJOBV = 'V';LDV >= 1otherwise.QβCOMPLEX array, dimension (LDQ,N). IfJOBQ = 'Q',Qcontains the unitary matrixQ. IfJOBQ = 'N',Qis not referenced.LDQβINTEGER. The leading dimension of the arrayQ.LDQ >= max(1,N)ifJOBQ = 'Q';LDQ >= 1otherwise.IWORKβINTEGER array, dimension (N).RWORKβREAL array, dimension (2*N).TAUβCOMPLEX array, dimension (N).WORKβCOMPLEX array, dimension (max(3*N,M,P)).INFOβINTEGER.= 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 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 automatically by Doxygen for LAPACK from the source code.
okay that's the whole page, bestie! π This is LAPACK Version 3.12.0, from /home/abui...D/cggsvp.f(3). slay and goodbye π
π¦ 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