ZUNCSD2BY1(3)
π ZUNCSD2BY1(3) β LAPACK Library Functions Manual π
okay so bestie, this is the <pink>ZUNCSD2BY1(3)</pink> page from the Library Functions Manual, and the header path reads /home/abui...uncsd2by1.f(3). We are keeping every single dimension, flag, and Fortran-typed parameter exactly as the source intended. No cap. π
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zuncsd2by1.fβ that's the source file, bestie. This whole page is its manual, and it's giving iconic linear-algebra energy. π¦
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine ZUNCSD2BY1 (jobu1, jobu2, jobv1t, m, p, q, x11, ldx11, x21,
ldx21, theta, u1, ldu1, u2, ldu2, v1t, ldv1t, work, lwork, rwork,
lrwork, iwork, info)
ZUNCSD2BY1
π¦ Function/Subroutine Documentation π¦
π subroutine ZUNCSD2BY1 π
subroutine ZUNCSD2BY1 (character jobu1, character jobu2, character jobv1t,
integer m, integer p, integer q, complex*16, dimension(ldx11,*) x11,
integer ldx11, complex*16, dimension(ldx21,*) x21, integer ldx21, double
precision, dimension(*) theta, complex*16, dimension(ldu1,*) u1, integer
ldu1, complex*16, dimension(ldu2,*) u2, integer ldu2, complex*16,
dimension(ldv1t,*) v1t, integer ldv1t, complex*16, dimension(*) work,
integer lwork, double precision, dimension(*) rwork, integer lrwork,
integer, dimension(*) iwork, integer info)
ZUNCSD2BY1
π― Purpose π―
okay so <pink>ZUNCSD2BY1</pink> 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 layout is literally this iconic:
[ 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]
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). Periodt. π
π§ Parameters π§
JOBU1βJOBU1 is CHARACTER.= 'Y': U1 is computed; otherwise: U1 is not computed. πJOBU2βJOBU2 is CHARACTER.= 'Y': U2 is computed; otherwise: U2 is not computed. β¨JOBV1TβJOBV1T is CHARACTER.= 'Y': V1T is computed; otherwise: V1T is not computed. π¦MβM is INTEGER. The number of rows in X. π«ΆPβP is INTEGER. The number of rows in X11.0 <= P <= M. πΈQβQ is INTEGER. The number of columns in X11 and X21.0 <= Q <= M. πX11βX11 is COMPLEX*16 array, dimension (LDX11,Q). On entry, part of the unitary matrix whose CSD is desired. πLDX11βLDX11 is INTEGER. The leading dimension of X11.LDX11 >= MAX(1,P). π₯X21βX21 is COMPLEX*16 array, dimension (LDX21,Q). On entry, part of the unitary matrix whose CSD is desired. πLDX21βLDX21 is INTEGER. The leading dimension of X21.LDX21 >= MAX(1,M-P). βTHETAβTHETA is DOUBLE PRECISION array, dimension (R), in which R = MIN(P,M-P,Q,M-Q). Also:C = DIAG( COS(THETA(1)), ... , COS(THETA(R)) )andS = DIAG( SIN(THETA(1)), ... , SIN(THETA(R)) ). πU1βU1 is COMPLEX*16 array, dimension (P). IfJOBU1 = 'Y', U1 contains the P-by-P unitary matrix U1. πLDU1βLDU1 is INTEGER. The leading dimension of U1. IfJOBU1 = 'Y',LDU1 >= MAX(1,P). π«U2βU2 is COMPLEX*16 array, dimension (M-P). IfJOBU2 = 'Y', U2 contains the (M-P)-by-(M-P) unitary matrix U2. πLDU2βLDU2 is INTEGER. The leading dimension of U2. IfJOBU2 = 'Y',LDU2 >= MAX(1,M-P). πV1TβV1T is COMPLEX*16 array, dimension (Q). IfJOBV1T = 'Y', V1T contains the Q-by-Q matrix unitary matrixV1**T. π§LDV1TβLDV1T is INTEGER. The leading dimension of V1T. IfJOBV1T = 'Y',LDV1T >= MAX(1,Q). πWORKβWORK is COMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK. β¨LWORKβLWORK is INTEGER. The dimension of the array WORK. IfLWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK and RWORK arrays, returns this value as the first entry of the WORK and RWORK array, respectively, and no error message related toLWORKorLRWORKis issued by XERBLA. πRWORKβRWORK is DOUBLE PRECISION 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 nonzero PHI's. πLRWORKβLRWORK is INTEGER. The dimension of the array RWORK. IfLRWORK=-1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK and RWORK arrays, returns this value as the first entry of the WORK and RWORK array, respectively, and no error message related toLWORKorLRWORKis issued by XERBLA. π«ΆIWORKβIWORK is INTEGER array, dimension (M-MIN(P,M-P,Q,M-Q)). πINFOβINFO is INTEGER.= 0: successful exit.< 0: ifINFO = -i, the i-th argument had an illegal value.> 0: ZBBCSD did not converge. See the description of WORK above 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 π
Definition at line 252 of file zuncsd2by1.f. β¨
π Author π
Generated automatically by Doxygen for LAPACK from the source code. π€β¨
xoxo, LAPACK Version 3.12.0 π β footer source: /home/abui...uncsd2by1.f(3) β¨ (no date was printed on the original footer, bestie) π«Ά
π¦ 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