DLASD7(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… 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 satisfy NL >= 1.
  • NR β€” NR is INTEGER. the row dimension of the lower block. must satisfy NR >= 1.
  • SQRE β€” SQRE is INTEGER.
    • = 0: the lower block is an NR-by-NR square matrix.
    • = 1: the lower block is an NR-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, D holds the singular values of the two submatrices about to be combined. on exit, D holds 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, Z holds the updating row vector in the secular equation.
  • ZW β€” ZW is DOUBLE PRECISION array, dimension ( M ). workspace for Z.
  • 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, and VF(NL+2:M) holds the first components of all right singular vectors of the lower block. on exit, VF holds the first components of all right singular vectors of the bidiagonal matrix.
  • VFW β€” VFW is DOUBLE PRECISION array, dimension ( M ). workspace for VF.
  • 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, and VL(NL+2:M) holds the last components of all right singular vectors of the lower block. on exit, VL holds the last components of all right singular vectors of the bidiagonal matrix.
  • VLW β€” VLW is DOUBLE PRECISION array, dimension ( M ). workspace for VL.
  • 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-1 singular 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 of D into ascending order.
  • IDXP β€” IDXP is INTEGER array, dimension ( N ). this will hold the permutation used to place deflated values of D at the end of the array. on output, IDXP(2:K) points to the nondeflated D-values and IDXP(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 in D into 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 have NL+1 added 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 if ICOMPQ = 0.
  • GIVPTR β€” GIVPTR is INTEGER. the number of Givens rotations which took place in this subproblem. not referenced if ICOMPQ = 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 if ICOMPQ = 0.
  • LDGCOL β€” LDGCOL is INTEGER. the leading dimension of GIVCOL, must be at least N.
  • GIVNUM β€” GIVNUM is DOUBLE PRECISION array, dimension ( LDGNUM, 2 ). each number indicates the C or S value to be used in the corresponding Givens rotation. not referenced if ICOMPQ = 0.
  • LDGNUM β€” LDGNUM is INTEGER. the leading dimension of GIVNUM, must be at least N.
  • C β€” C is DOUBLE PRECISION. C contains garbage if SQRE =0 and the C-value of a Givens rotation related to the right null space if SQRE = 1. πŸ—‘οΈ
  • S β€” S is DOUBLE PRECISION. S contains garbage if SQRE =0 and the S-value of a Givens rotation related to the right null space if SQRE = 1. πŸ—‘οΈ
ngl if you read C or S while SQRE = 0 you're reading garbage, that's canon, do not trust it πŸ’€
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit.
    • < 0: if INFO = -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