ZLALS0(3)

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

πŸ¦‹ zlals0.f(3) β€” Library Functions Manual πŸ¦‹

okay so real quick, the file lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlals0.f and honestly that path is giving "forgotten student ID in a group chat" but we move πŸ’…


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlals0.f

like, that's the whole name. that's it. that's the girl πŸŽ€


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine ZLALS0 (icompq, nl, nr, sqre, nrhs, b, ldb, bx, ldbx, perm, givptr, givcol, ldgcol, givnum, ldgnum, poles, difl, difr, z, k, c, s, rwork, info) β€” ZLALS0 applies back multiplying factors in solving the least squares problem using divide and conquer SVD approach. Used by sgelsd.

πŸ’– Function/Subroutine Documentation πŸ’–

subroutine ZLALS0 (integer icompq, integer nl, integer nr, integer sqre, integer nrhs, complex*16, dimension( ldb, * ) b, integer ldb, complex*16, dimension( ldbx, * ) bx, integer ldbx, integer, dimension( * ) perm, integer givptr, integer, dimension( ldgcol, * ) givcol, integer ldgcol, double precision, dimension( ldgnum, * ) givnum, integer ldgnum, double precision, dimension( ldgnum, * ) poles, double precision, dimension( * ) difl, double precision, dimension( ldgnum, * ) difr, double precision, dimension( * ) z, integer k, double precision c, double precision s, double precision, dimension( * ) rwork, integer info)

ZLALS0 applies back multiplying factors in solving the least squares problem using divide and conquer SVD approach. Used by sgelsd.

🫢 Purpose:

!>
!> ZLALS0 applies back the multiplying factors of either the left or the
!> right singular vector matrix of a diagonal matrix appended by a row
!> to the right hand side matrix B in solving the least squares problem
!> using the divide-and-conquer SVD approach.
!>
!> For the left singular vector matrix, three types of orthogonal
!> matrices are involved:
!>
!> (1L) Givens rotations: the number of such rotations is GIVPTR; the
!>      pairs of columns/rows they were applied to are stored in GIVCOL;
!>      and the C- and S-values of these rotations are stored in GIVNUM.
!>
!> (2L) Permutation. The (NL+1)-st row of B is to be moved to the first
!>      row, and for J=2:N, PERM(J)-th row of B is to be moved to the
!>      J-th row.
!>
!> (3L) The left singular vector matrix of the remaining matrix.
!>
!> For the right singular vector matrix, four types of orthogonal
!> matrices are involved:
!>
!> (1R) The right singular vector matrix of the remaining matrix.
!>
!> (2R) If SQRE = 1, one extra Givens rotation to generate the right
!>      null space.
!>
!> (3R) The inverse transformation of (2L).
!>
!> (4R) The inverse transformation of (1L).
!>
bestie, the energy here is: three left-side matrices (1L), (2L), (3L) and four right-side matrices (1R) through (4R), and (3R)/(4R) are literally the inverse transformations of (2L)/(1L). iconic symmetry ✨

πŸŽ€ Parameters πŸŽ€

  • ICOMPQ β€” ICOMPQ is INTEGER. Specifies whether singular vectors are to be computed in factored form:
    • = 0: Left singular vector matrix.
    • = 1: Right singular vector matrix.
  • NL β€” NL is INTEGER. The row dimension of the upper block. NL >= 1.
  • NR β€” NR is INTEGER. The row dimension of the lower block. 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.

The bidiagonal matrix has row dimension N = NL + NR + 1, and column dimension M = N + SQRE.

  • NRHS β€” NRHS is INTEGER. The number of columns of B and BX. NRHS must be at least 1.
  • B β€” B is COMPLEX*16 array, dimension ( LDB, NRHS ). On input, B contains the right hand sides of the least squares problem in rows 1 through M. On output, B contains the solution X in rows 1 through N.
  • LDB β€” LDB is INTEGER. The leading dimension of B. LDB must be at least max(1,MAX( M, N )).
  • BX β€” BX is COMPLEX*16 array, dimension ( LDBX, NRHS ).
  • LDBX β€” LDBX is INTEGER. The leading dimension of BX.
  • PERM β€” PERM is INTEGER array, dimension ( N ). The permutations (from deflation and sorting) applied to the two blocks.
  • GIVPTR β€” GIVPTR is INTEGER. The number of Givens rotations which took place in this subproblem.
  • GIVCOL β€” GIVCOL is INTEGER array, dimension ( LDGCOL, 2 ). Each pair of numbers indicates a pair of rows/columns involved in a Givens rotation.
  • 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 used in the corresponding Givens rotation.
  • LDGNUM β€” LDGNUM is INTEGER. The leading dimension of arrays DIFR, POLES and GIVNUM, must be at least K.
  • POLES β€” POLES is DOUBLE PRECISION array, dimension ( LDGNUM, 2 ). On entry, POLES(1:K, 1) contains the new singular values obtained from solving the secular equation, and POLES(1:K, 2) is an array containing the poles in the secular equation.
  • DIFL β€” DIFL is DOUBLE PRECISION array, dimension ( K ). On entry, DIFL(I) is the distance between I-th updated (undeflated) singular value and the I-th (undeflated) old singular value.
  • DIFR β€” DIFR is DOUBLE PRECISION array, dimension ( LDGNUM, 2 ). On entry, DIFR(I, 1) contains the distances between I-th updated (undeflated) singular value and the I+1-th (undeflated) old singular value. And DIFR(I, 2) is the normalizing factor for the I-th right singular vector.
  • Z β€” Z is DOUBLE PRECISION array, dimension ( K ). Contain the components of the deflation-adjusted updating row vector.
  • K β€” K is INTEGER. Contains the dimension of the non-deflated matrix, This is the order of the related secular equation. 1 <= K <=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.
πŸ’€ not C and S literally being "garbage" when SQRE = 0 β€” she said "no thoughts, head empty" and honestly? relatable.
  • RWORK β€” RWORK is DOUBLE PRECISION array, dimension ( K*(1+NRHS) + 2*NRHS ).
  • 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 Ren-Cang Li, Computer Science Division, University of California at Berkeley, USA

Osni Marques, LBNL/NERSC, USA


🧚 Definition at line 267 of file zlals0.f.


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code.


okay that's the whole page, you ate that πŸ“βœ¨ this was LAPACK, Version 3.12.0, and the file is /home/abui...RC/zlals0.f(3) β€” mwah, go forth and multiply your factors, bestie πŸ’œπŸŽ€

πŸ“¦ where this page comes from