SRC/slasd2.f(3)
π NAME π
SRC/slasd2.f β okay bestie, this is the SRC/slasd2.f(3) page from the Library Functions Manual, and itβs lowkey iconic π
β¨ SYNOPSIS β¨
π Functions/Subroutines
subroutine slasd2 (...)βSLASD2merges the two sets of singular values together into a single sorted set. Used bysbdsdc.
subroutine slasd2 (nl, nr, sqre, k, d, z, alpha, beta, u, ldu, vt, ldvt, dsigma, u2, ldu2, vt2, ldvt2, idxp, idx, idxc, idxq, coltyp, info)
π Function/Subroutine Documentation π
π¦ subroutine slasd2 (...)
subroutine slasd2 (integer nl, integer nr, integer sqre, integer k, real,
dimension( * ) d, real, dimension( * ) z, real alpha, real beta, real,
dimension( ldu, * ) u, integer ldu, real, dimension( ldvt, * ) vt,
integer ldvt, real, dimension( * ) dsigma, real, dimension( ldu2, * )
u2, integer ldu2, real, dimension( ldvt2, * ) vt2, integer ldvt2,
integer, dimension( * ) idxp, integer, dimension( * ) idx, integer,
dimension( * ) idxc, integer, dimension( * ) idxq, integer, dimension( *
) coltyp, integer info)
SLASD2 merges the two sets of singular values together into a single sorted set. Used by sbdsdc.
π Purpose
SLASD2 merges the two sets of singular values together into a single sorted set. Then it tries to deflate the size of the problem. There are two ways in which deflation can occur: 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.
SLASD2 is called from SLASD1.
πΈ Parameters
NLβNL is INTEGER. Itβs the row dimension of the upper block.NL >= 1.β¨NRβNR is INTEGER. Itβs the row dimension of the lower block.NR >= 1.β¨SQREβSQRE is 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βK is INTEGER. Contains the dimension of the non-deflated matrix. This is the order of the related secular equation.1 <= K <=N.πDβD is REAL array, dimension (N). On entry D contains the singular values of the two submatrices to be combined. On exit D contains the trailing(N-K)updated singular values (those which were deflated) sorted into increasing order. π«ZβZ is REAL array, dimension (N). On exit Z contains the updating row vector in the secular equation. πALPHAβALPHA is REAL. Contains the diagonal element associated with the added row. βBETAβBETA is REAL. Contains the off-diagonal element associated with the added row. βUβU is REAL array, dimension (LDU,N). On entry U contains 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 U contains the trailing(N-K)updated left singular vectors (those which were deflated) in its lastN-Kcolumns. π¦LDUβLDU is INTEGER. The leading dimension of the array U.LDU >= N.πVTβVT is REAL array, dimension (LDVT,M). On entryVT**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 exitVT**Tcontains the trailing(N-K)updated right singular vectors (those which were deflated) in its lastN-Kcolumns. In caseSQRE =1, the last row of VT spans the right null space. πLDVTβLDVT is INTEGER. The leading dimension of the array VT.LDVT >= M.πDSIGMAβDSIGMA is REAL array, dimension (N). Contains a copy of the diagonal elements (K-1singular values and one zero) in the secular equation. πU2βU2 is REAL array, dimension (LDU2,N). Contains a copy of the firstK-1left singular vectors which will be used bySLASD3in a matrix multiply (SGEMM) to solve for the new left singular vectors. U2 is 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βLDU2 is INTEGER. The leading dimension of the array U2.LDU2 >= N.πVT2βVT2 is REAL array, dimension (LDVT2,N).VT2**Tcontains a copy of the firstKright singular vectors which will be used bySLASD3in a matrix multiply (SGEMM) to solve for the new right singular vectors. VT2 is 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βLDVT2 is INTEGER. The leading dimension of the array VT2.LDVT2 >= M.πIDXPβIDXP is INTEGER array, dimension (N). This will contain the permutation used to place deflated values of D at the end of the array. On outputIDXP(2:K)points to the nondeflated D-values andIDXP(K+1:N)points to the deflated singular values. πIDXβIDX is INTEGER array, dimension (N). This will contain the permutation used to sort the contents of D into ascending order. πIDXCβIDXC is INTEGER array, dimension (N). This will contain the permutation used to arrange the columns of the deflated U matrix 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βIDXQ is INTEGER array, dimension (N). This contains the permutation which separately sorts the two sub-problems in D into ascending order. Note that entries in the first hlaf of this permutation must first be moved one position backward; and entries in the second half must first haveNL+1added to their values. πCOLTYPβCOLTYP is INTEGER array, dimension (N). As workspace, this will contain a label which will indicate which of the following types a column in the U2 matrix or a row in the VT2 matrix is:1 : non-zero in the upper half only2 : non-zero in the lower half only3 : dense4 : deflated
On exit, it is an array of dimension 4, with COLTYP(I) being the dimension of the I-th type columns. π¨
INFOβINFO is 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.
πΈ Contributors
Ming Gu and Huan Ren, Computer Science Division, University of California at Berkeley, USA. π«Ά
π Definition at line 266 of file slasd2.f.
Yep, it lives at line 266 of slasd2.f. Periodt. π
π«Ά Author
Generated automatically by Doxygen for LAPACK from the source code. No cap. β¨
Source/version: LAPACK Version 3.12.0. Page: SRC/slasd2.f(3). Date: not printed on this footer, bestie β so Iβm not inventing one π
π
π¦ 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