SRC/slar1v.f(3)

🌸 NAME 🌸

SRC/slar1v.f β€” okay bestie, this is the manual page SRC/slar1v.f(3) from the Library Functions Manual. Slay. ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

✨ Functions/Subroutines ✨

subroutine slar1v (n, b1, bn, lambda, d, l, ld, lld, pivmin, gaptol, z,
    wantnc, negcnt, ztz, mingma, r, isuppz, nrminv, resid, rqcorr, work)

SLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - Ξ»I.


πŸ’… Function/Subroutine Documentation πŸ’…

subroutine slar1v (integer n, integer b1, integer bn, real lambda, real,
    dimension( * ) d, real, dimension( * ) l, real, dimension( * ) ld, real,
    dimension( * ) lld, real pivmin, real gaptol, real, dimension( * ) z,
    logical wantnc, integer negcnt, real ztz, real mingma, integer r,
    integer, dimension( * ) isuppz, real nrminv, real resid, real rqcorr,
    real, dimension( * ) work)

SLAR1V computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - Ξ»I.

πŸŽ€ Purpose: πŸŽ€

okay so here's the tea, bestie: SLAR1V computes the (scaled) r-th column of the inverse of the sumbmatrix in rows B1 through BN of the tridiagonal matrix L D L**T - sigma I. (yes, the source says sumbmatrix, not me πŸ’€)

When sigma is close to an eigenvalue, the computed vector is an accurate eigenvector. Usually, r corresponds to the index where the eigenvector is largest in magnitude.

The following steps accomplish this computation:

  • (a) Stationary qd transform, L D L**T - sigma I = L(+) D(+) L(+)**T
  • (b) Progressive qd transform, L D L**T - sigma I = U(-) D(-) U(-)**T
  • (c) Computation of the diagonal elements of the inverse of L D L**T - sigma I by combining the above transforms, and choosing r as the index where the diagonal of the inverse is (one of the) largest in magnitude.
  • (d) Computation of the (scaled) r-th column of the inverse using the twisted factorization obtained by combining the top part of the the stationary and the bottom part of the progressive transform. (yes, β€œthe the” is in the source β€” iconic)

πŸ“ Parameters πŸ“

  • N β€” N is INTEGER; the order of the matrix L D L**T.
  • B1 β€” B1 is INTEGER; first index of the submatrix of L D L**T.
  • BN β€” BN is INTEGER; last index of the submatrix of L D L**T.
  • LAMBDA β€” LAMBDA is REAL; the shift. In order to compute an accurate eigenvector, LAMBDA should be a good approximation to an eigenvalue of L D L**T.
  • L β€” L is REAL array, dimension (N-1); the (n-1) subdiagonal elements of the unit bidiagonal matrix L, in elements 1 to N-1.
  • D β€” D is REAL array, dimension (N); the n diagonal elements of the diagonal matrix D.
  • LD β€” LD is REAL array, dimension (N-1); the n-1 elements L(i)*D(i).
  • LLD β€” LLD is REAL array, dimension (N-1); the n-1 elements L(i)*L(i)*D(i).
  • PIVMIN β€” PIVMIN is REAL; the minimum pivot in the Sturm sequence.
  • GAPTOL β€” GAPTOL is REAL; tolerance that indicates when eigenvector entries are negligible w.r.t. their contribution to the residual.
  • Z β€” Z is REAL array, dimension (N). On input, all entries of Z must be set to 0. On output, Z contains the (scaled) r-th column of the inverse. The scaling is such that Z(R) equals 1.
⚠️ bestie, this is not a drill: on input, all entries of Z must be set to 0. periodt.
  • WANTNC β€” WANTNC is LOGICAL; specifies whether NEGCNT has to be computed.
  • NEGCNT β€” NEGCNT is INTEGER; if WANTNC is .TRUE. then NEGCNT = the number of pivots < pivmin in the matrix factorization L D L**T, and NEGCNT = -1 otherwise.
  • ZTZ β€” ZTZ is REAL; the square of the 2-norm of Z.
  • MINGMA β€” MINGMA is REAL; the reciprocal of the largest (in magnitude) diagonal element of the inverse of L D L**T - sigma I.
  • R β€” R is INTEGER; the twist index for the twisted factorization used to compute Z. On input, 0 <= R <= N. If R is input as 0, R is set to the index where (L D L**T - sigma I)^{-1} is largest in magnitude. If 1 <= R <= N, R is unchanged. On output, R contains the twist index used to compute Z. Ideally, R designates the position of the maximum entry in the eigenvector.
πŸ¦‹ vibe check on R: valid input range is 0 <= R <= N, no cap.
  • ISUPPZ β€” ISUPPZ is INTEGER array, dimension (2); the support of the vector in Z, i.e., the vector Z is nonzero only in elements ISUPPZ(1) through ISUPPZ( 2 ).
  • NRMINV β€” NRMINV is REAL; NRMINV = 1/SQRT( ZTZ ).
  • RESID β€” RESID is REAL; the residual of the FP vector. RESID = ABS( MINGMA )/SQRT( ZTZ ).
  • RQCORR β€” RQCORR is REAL; the Rayleigh Quotient correction to LAMBDA. RQCORR = MINGMA*TMP.
  • WORK β€” WORK is REAL array, dimension (4*N).

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

🌟 Contributors: 🌟

  • Beresford Parlett, University of California, Berkeley, USA
  • Jim Demmel, University of California, Berkeley, USA
  • Inderjit Dhillon, University of Texas, Austin, USA
  • Osni Marques, LBNL/NERSC, USA
  • Christof Voemel, University of California, Berkeley, USA

Definition at line 227 of file slar1v.f.


🧚 Author 🧚

Generated automatically by Doxygen for LAPACK from the source code.

🌈 that's the whole vibe, bestie β€” LAPACK Version 3.12.0, source SRC/slar1v.f(3). mwah πŸ’‹βœ¨
πŸ“¦ where this page comes from