SRC/cuncsd2by1.f(3)
π NAME π
SRC/cuncsd2by1.f(3) is the manual-page moment, bestie β this is the Library Functions Manual entry for SRC/cuncsd2by1.f πβ¨
πΈ SYNOPSIS πΈ
Functions/Subroutines
Okay so the synopsis is giving βone subroutine, big main-character energyβ:
subroutine cuncsd2by1 (jobu1, jobu2, jobv1t, m, p, q, x11, ldx11, x21,
ldx21, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, work, lwork, rwork,
lrwork, iwork, info)
CUNCSD2BY1
β¨ Function/Subroutine Documentation β¨
The full signature is literally right here, no cap:
subroutine cuncsd2by1 (character jobu1, character jobu2, character jobv1t,
integer m, integer p, integer q, complex, dimension(ldx11,*) x11,
integer ldx11, complex, dimension(ldx21,*) x21, integer ldx21, real,
dimension(*) theta, complex, dimension(ldu1,*) u1, integer ldu1,
complex, dimension(ldu2,*) u2, integer ldu2, complex, dimension(ldv1t,*)
v1t, integer ldv1t, complex, dimension(*) work, integer lwork, real,
dimension(*) rwork, integer lrwork, integer, dimension(*) iwork, integer
info)
CUNCSD2BY1
π― Purpose π―
CUNCSD2BY1 computes the CS decomposition of an M-by-Q matrix X with orthonormal columns that has been partitioned into a 2-by-1 block structure. The vibe is:
[ I1 0 0 ]
[ 0 C 0 ]
[ X11 ] [ U1 | ] [ 0 0 0 ]
X = [-----] = [---------] [----------] V1**T .
[ X21 ] [ | U2 ] [ 0 0 0 ]
[ 0 S 0 ]
[ 0 0 I2]
Hereβs the breakdown, bestie: X11 is P-by-Q. The unitary matrices U1, U2, and V1 are P-by-P, (M-P)-by-(M-P), and Q-by-Q, respectively. C and S are R-by-R nonnegative diagonal matrices satisfying C^2 + S^2 = I, in which R = MIN(P,M-P,Q,M-Q). I1 is a K1-by-K1 identity matrix and I2 is a K2-by-K2 identity matrix, where K1 = MAX(Q+P-M,0), K2 = MAX(Q-P,0). Iconic linear algebra behavior, honestly. π
π Parameters π
Every single parameter, bestie β nothing skipped, nothing blurred:
JOBU1βJOBU1isCHARACTER.= 'Y':U1is computed; otherwise:U1is not computed. π«ΆJOBU2βJOBU2isCHARACTER.= 'Y':U2is computed; otherwise:U2is not computed. πJOBV1TβJOBV1TisCHARACTER.= 'Y':V1Tis computed; otherwise:V1Tis not computed. β¨MβMisINTEGER. The number of rows inX. πPβPisINTEGER. The number of rows inX11.0 <= P <= M. πΈQβQisINTEGER. The number of columns inX11andX21.0 <= Q <= M. πX11βX11isCOMPLEX array, dimension (LDX11,Q). On entry, part of the unitary matrix whose CSD is desired. π¦LDX11βLDX11isINTEGER. The leading dimension ofX11.LDX11 >= MAX(1,P). πX21βX21isCOMPLEX array, dimension (LDX21,Q). On entry, part of the unitary matrix whose CSD is desired. π«LDX21βLDX21isINTEGER. The leading dimension ofX21.LDX21 >= MAX(1,M-P). πTHETAβTHETAisREAL array, dimension (R), in whichR = MIN(P,M-P,Q,M-Q).C = DIAG( COS(THETA(1)), ... , COS(THETA(R)) )andS = DIAG( SIN(THETA(1)), ... , SIN(THETA(R)) ). πU1βU1isCOMPLEX array, dimension (P). IfJOBU1 = 'Y',U1contains the P-by-P unitary matrixU1. π₯LDU1βLDU1isINTEGER. The leading dimension ofU1. IfJOBU1 = 'Y',LDU1 >= MAX(1,P). πU2βU2isCOMPLEX array, dimension (M-P). IfJOBU2 = 'Y',U2contains the (M-P)-by-(M-P) unitary matrixU2. π«ΆLDU2βLDU2isINTEGER. The leading dimension ofU2. IfJOBU2 = 'Y',LDU2 >= MAX(1,M-P). πV1TβV1TisCOMPLEX array, dimension (Q). IfJOBV1T = 'Y',V1Tcontains the Q-by-Q unitary matrixV1**T. β¨LDV1TβLDV1TisINTEGER. The leading dimension ofV1T. IfJOBV1T = 'Y',LDV1T >= MAX(1,Q). πWORKβWORKisCOMPLEX array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK. πLWORKβLWORKisINTEGER. The dimension of the arrayWORK. IfLWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKandRWORKarrays, returns this value as the first entry of theWORKandRWORKarray, respectively, and no error message related toLWORKorLRWORKis issued byXERBLA. πRWORKβRWORKisREAL array, dimension (MAX(1,LRWORK)). On exit, ifINFO = 0,RWORK(1)returns the optimalLRWORK. IfINFO > 0on exit,RWORK(2:R)contains the valuesPHI(1), ...,PHI(R-1)that, together withTHETA(1), ...,THETA(R), define the matrix in intermediate bidiagonal-block form remaining after nonconvergence.INFOspecifies the number of nonzeroPHI's. πLRWORKβLRWORKisINTEGER. The dimension of the arrayRWORK. IfLRWORK=-1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKandRWORKarrays, returns this value as the first entry of theWORKandRWORKarray, respectively, and no error message related toLWORKorLRWORKis issued byXERBLA. πIWORKβIWORKisINTEGER array, dimension (M-MIN(P,M-P,Q,M-Q)). πINFOβINFOisINTEGER.= 0: successful exit.< 0: ifINFO = -i, the i-th argument had an illegal value.> 0:CBBCSDdid not converge. See the description ofWORKabove for details. π§
π References π
[1] Brian D. Sutton. Computing the complete CS decomposition. Numer. Algorithms, 50(1):33-65, 2009. β
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 253 of file cuncsd2by1.f.
π¦ Author (auto-generated) π¦
Generated automatically by Doxygen for LAPACK from the source code. π
Thatβs the whole page, bestie β made for LAPACK Version 3.12.0, source file SRC/cuncsd2by1.f(3). Byeee πβ¨
π¦ 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