SRC/dlasd2.f(3)
πΈ NAME πΈ
SRC/dlasd2.f β bestie, this is the Library Functions Manual page for the dlasd2 subroutine. Itβs giving βLAPACK internals, but make it understandableβ π
β¨
β¨ SYNOPSIS β¨
π Functions/Subroutines π
Hereβs the whole call, copied exactly because we do not mess with signatures:
subroutine dlasd2 (nl, nr, sqre, k, d, z, alpha, beta, u, ldu, vt, ldvt,
dsigma, u2, ldu2, vt2, ldvt2, idxp, idx, idxc, idxq, coltyp, info)
One-line vibe: DLASD2 merges the two sets of singular values together into a single sorted set. Used by sbdsdc. No cap, thatβs literally its whole synopsis π«Ά
π Function/Subroutine Documentation π
Okay so this is the full signature with all the types and dimensions. Do not lose your place, bestie β itβs long but iconic:
subroutine dlasd2 (integer nl, integer nr, integer sqre, integer k, double
precision, dimension( * ) d, double precision, dimension( * ) z, double
precision alpha, double precision beta, double precision, dimension(
ldu, * ) u, integer ldu, double precision, dimension( ldvt, * ) vt,
integer ldvt, double precision, dimension( * ) dsigma, double precision,
dimension( ldu2, * ) u2, integer ldu2, double precision, dimension(
ldvt2, * ) vt2, integer ldvt2, integer, dimension( * ) idxp, integer,
dimension( * ) idx, integer, dimension( * ) idxc, integer, dimension( *
) idxq, integer, dimension( * ) coltyp, integer info)
Description: DLASD2 merges the two sets of singular values together into a single sorted set. Used by sbdsdc. π
π₯ Purpose π₯
Okay, hereβs the tea: DLASD2 merges the two sets of singular values together into a single sorted set. Then it tries to deflate the size of the problem. Deflation can happen in two ways: when two or more singular values are close together, or if there is a tiny entry in the Z vector. For each such occurrence, the order of the related secular equation problem is reduced by one. And yes β DLASD2 is called from DLASD1 π
π Parameters π
NLβINTEGER. The row dimension of the upper block. Constraint:NL >= 1.NRβINTEGER. The row dimension of the lower block. Constraint:NR >= 1.SQREβINTEGER.= 0: the lower block is anNR-by-NRsquare matrix.= 1: the lower block is anNR-by-(NR+1)rectangular matrix. The bidiagonal matrix hasN = NL + NR + 1rows andM = N + SQRE >= Ncolumns.KβINTEGER. Contains the dimension of the non-deflated matrix. This is the order of the related secular equation.1 <= K <=N.DβDOUBLE PRECISION array, dimension(N). On entry,Dcontains the singular values of the two submatrices to be combined. On exit,Dcontains the trailing(N-K)updated singular values β those which were deflated β sorted into increasing order.ZβDOUBLE PRECISION array, dimension(N). On exit,Zcontains the updating row vector in the secular equation.ALPHAβDOUBLE PRECISION. Contains the diagonal element associated with the added row.BETAβDOUBLE PRECISION. Contains the off-diagonal element associated with the added row.UβDOUBLE PRECISION array, dimension(LDU,N). On entry,Ucontains the left singular vectors of two submatrices in the two square blocks with corners at(1,1),(NL, NL), and(NL+2, NL+2),(N,N). On exit,Ucontains the trailing(N-K)updated left singular vectors β those which were deflated β in its lastN-Kcolumns.LDUβINTEGER. The leading dimension of the arrayU.LDU >= N.VTβDOUBLE PRECISION array, dimension(LDVT,M). On entry,VT**Tcontains the right singular vectors of two submatrices in the two square blocks with corners at(1,1),(NL+1, NL+1), and(NL+2, NL+2),(M,M). On exit,VT**Tcontains the trailing(N-K)updated right singular vectors β those which were deflated β in its lastN-Kcolumns. In caseSQRE =1, the last row ofVTspans the right null space.LDVTβINTEGER. The leading dimension of the arrayVT.LDVT >= M.DSIGMAβDOUBLE PRECISION array, dimension (N). Contains a copy of the diagonal elements (K-1singular values and one zero) in the secular equation.U2βDOUBLE PRECISION array, dimension(LDU2,N). Contains a copy of the firstK-1left singular vectors which will be used byDLASD3in a matrix multiply (DGEMM) to solve for the new left singular vectors.U2is arranged into four blocks. The first block contains a column with1atNL+1and zero everywhere else; the second block contains non-zero entries only at and aboveNL; the third contains non-zero entries only belowNL+1; and the fourth is dense.LDU2βINTEGER. The leading dimension of the arrayU2.LDU2 >= N.VT2βDOUBLE PRECISION array, dimension(LDVT2,N).VT2**Tcontains a copy of the firstKright singular vectors which will be used byDLASD3in a matrix multiply (DGEMM) to solve for the new right singular vectors.VT2is arranged into three blocks. The first block contains a row that corresponds to the special0diagonal element inSIGMA; the second block contains non-zeros only at and beforeNL +1; the third block contains non-zeros only at and afterNL +2.LDVT2βINTEGER. The leading dimension of the arrayVT2.LDVT2 >= M.IDXPβINTEGER array, dimension(N). This will contain the permutation used to place deflated values ofDat the end of the array. On output,IDXP(2:K)points to the nondeflatedD-values andIDXP(K+1:N)points to the deflated singular values.IDXβINTEGER array, dimension(N). This will contain the permutation used to sort the contents ofDinto ascending order.IDXCβINTEGER array, dimension(N). This will contain the permutation used to arrange the columns of the deflatedUmatrix into three groups: the first group contains non-zero entries only at and aboveNL, the second contains non-zero entries only belowNL+2, and the third is dense.IDXQβINTEGER array, dimension(N). This contains the permutation which separately sorts the two sub-problems inDinto ascending order. Note that entries in the firsthlafβ yes, thatβs the sourceβs spelling π β of this permutation must first be moved one position backward; and entries in the second half must first haveNL+1added to their values.COLTYPβINTEGER array, dimension(N). As workspace, this will contain a label which will indicate which of the following types a column in theU2matrix or a row in theVT2matrix is:1: non-zero in the upper half only;2: non-zero in the lower half only;3: dense;4: deflated. On exit, it is an array of dimension4, withCOLTYP(I)being the dimension of theI-th type columns.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.
π Contributors π
Ming Gu and Huan Ren, Computer Science Division, University of California at Berkeley, USA
Definition at line 266 of file dlasd2.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
Thatβs the whole page, bestie! The footer vibes are LAPACK Version 3.12.0 for SRC/dlasd2.f(3) β no separate date in that footer, just those details, and honestly Iβm obsessed with the consistency π
β¨
π¦ 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