DLASD7(3)
π DLASD7(3) β¨
okay so real quick β this is a page from the Library Functions Manual, and bestie, it's a whole LAPACK moment. Buckle up π
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlasd7.f
like... that's literally the file, that's the whole name section, no notes π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine DLASD7 (icompq, nl, nr, sqre, k, d, z, zw, vf, vfw, vl, vlw,
alpha, beta, dsigma, idx, idxp, idxq, perm, givptr, givcol, ldgcol,
givnum, ldgnum, c, s, info)
DLASD7 merges the two sets of singular values together into a single sorted set. Then it tries to deflate the size of the problem. Used by sbdsdc.
π Function/Subroutine Documentation π
subroutine DLASD7 (integer icompq, integer nl, integer nr, integer sqre,
integer k, double precision, dimension( * ) d, double precision,
dimension( * ) z, double precision, dimension( * ) zw, double precision,
dimension( * ) vf, double precision, dimension( * ) vfw, double
precision, dimension( * ) vl, double precision, dimension( * ) vlw,
double precision alpha, double precision beta, double precision,
dimension( * ) dsigma, integer, dimension( * ) idx, integer, dimension(
* ) idxp, integer, dimension( * ) idxq, integer, dimension( * ) perm,
integer givptr, integer, dimension( ldgcol, * ) givcol, integer ldgcol,
double precision, dimension( ldgnum, * ) givnum, integer ldgnum, double
precision c, double precision s, integer info)
DLASD7 merges the two sets of singular values together into a single sorted set. Then it tries to deflate the size of the problem. Used by sbdsdc.
β¨ Purpose β¨
fortran !> !> DLASD7 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. !> !> DLASD7 is called from DLASD6. !>
so yeah β two deflation pathways, singular values being besties (close together) or a tiny lil entry in the Z vector, and every time that happens the secular equation order drops by one. and important: it gets called from DLASD6. iykyk π₯
π Parameters π
ICOMPQβICOMPQ is INTEGER. tells us whether singular vectors get computed in compact form, like this:= 0: Compute singular values only.= 1: Compute singular vectors of upper bidiagonal matrix in compact form.
NLβNL is INTEGER. the row dimension of the upper block. must satisfyNL >= 1.NRβNR is INTEGER. the row dimension of the lower block. must satisfyNR >= 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.
and the bidiagonal matrix has N = NL + NR + 1 rows and M = N + SQRE >= N columns. periodt π
KβK is INTEGER. holds the dimension of the non-deflated matrix, which is the order of the related secular equation.1 <= K <=N.DβD is DOUBLE PRECISION array, dimension ( N ). on entry,Dholds the singular values of the two submatrices about to be combined. on exit,Dholds the trailing(N-K)updated singular values (the ones that got deflated) sorted into increasing order. glow-up π¦ZβZ is DOUBLE PRECISION array, dimension ( M ). on exit,Zholds the updating row vector in the secular equation.ZWβZW is DOUBLE PRECISION array, dimension ( M ). workspace forZ.VFβVF is DOUBLE PRECISION array, dimension ( M ). on entry,VF(1:NL+1)holds the first components of all right singular vectors of the upper block, andVF(NL+2:M)holds the first components of all right singular vectors of the lower block. on exit,VFholds the first components of all right singular vectors of the bidiagonal matrix.VFWβVFW is DOUBLE PRECISION array, dimension ( M ). workspace forVF.VLβVL is DOUBLE PRECISION array, dimension ( M ). on entry,VL(1:NL+1)holds the last components of all right singular vectors of the upper block, andVL(NL+2:M)holds the last components of all right singular vectors of the lower block. on exit,VLholds the last components of all right singular vectors of the bidiagonal matrix.VLWβVLW is DOUBLE PRECISION array, dimension ( M ). workspace forVL.ALPHAβALPHA is DOUBLE PRECISION. holds the diagonal element associated with the added row.BETAβBETA is DOUBLE PRECISION. holds the off-diagonal element associated with the added row.DSIGMAβDSIGMA is DOUBLE PRECISION array, dimension ( N ). holds a copy of the diagonal elements (K-1singular values and one zero) in the secular equation.IDXβIDX is INTEGER array, dimension ( N ). this will hold the permutation used to sort the contents ofDinto ascending order.IDXPβIDXP is INTEGER array, dimension ( N ). this will hold 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.IDXQβIDXQ is INTEGER array, dimension ( N ). this holds the permutation which separately sorts the two sub-problems inDinto ascending order. note (and this part is a whole vibe check) that entries in the first half of this permutation must first be moved one position backward, and entries in the second half must first haveNL+1added to their values. πPERMβPERM is INTEGER array, dimension ( N ). the permutations (from deflation and sorting) to be applied to each singular block. not referenced ifICOMPQ = 0.GIVPTRβGIVPTR is INTEGER. the number of Givens rotations which took place in this subproblem. not referenced ifICOMPQ = 0.GIVCOLβGIVCOL is INTEGER array, dimension ( LDGCOL, 2 ). each pair of numbers indicates a pair of columns to take place in a Givens rotation. not referenced ifICOMPQ = 0.LDGCOLβLDGCOL is INTEGER. the leading dimension ofGIVCOL, must be at leastN.GIVNUMβGIVNUM is DOUBLE PRECISION array, dimension ( LDGNUM, 2 ). each number indicates theCorSvalue to be used in the corresponding Givens rotation. not referenced ifICOMPQ = 0.LDGNUMβLDGNUM is INTEGER. the leading dimension ofGIVNUM, must be at leastN.CβC is DOUBLE PRECISION.Ccontains garbage ifSQRE =0and theC-value of a Givens rotation related to the right null space ifSQRE = 1. ποΈSβS is DOUBLE PRECISION.Scontains garbage ifSQRE =0and theS-value of a Givens rotation related to the right null space ifSQRE = 1. ποΈ
ngl if you readCorSwhileSQRE = 0you're reading garbage, that's canon, do not trust it π
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 276 of file dlasd7.f.
β Author β
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole page bestie, slay π«Ά β this little icon was brought to you by LAPACK Version 3.12.0, live from /home/abui...RC/dlasd7.f(3). no cap, that's the footer, go touch some grass now π§ββοΈπ
π¦ 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