/home/abui...D/slahrd.f(3)

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

πŸ¦‹ slahrd.f (3) β€” the deprecated girlboss of LAPACK πŸ’…

ok so bestie, welcome to the manual page for /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/DEPRECATED/slahrd.f β€” yes the whole path, yes it's long, no we are not shortening it, it's iconic in a "my professor's email signature" kind of way πŸŽ€

From the Library Functions Manual, no cap.


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/DEPRECATED/slahrd.f β€” literally the whole file path as the name, she said "I contain multitudes" 🌈


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine SLAHRD (n, k, nb, a, lda, tau, t, ldt, y, ldy) β€” okay so this one reduces the first nb columns of a general rectangular matrix A so that elements below the k-th subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A. she's a worker πŸ’ͺ

πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

subroutine SLAHRD (integer n, integer k, integer nb, real, dimension( lda, * ) a, integer lda, real, dimension( nb ) tau, real, dimension( ldt, nb ) t, integer ldt, real, dimension( ldy, nb ) y, integer ldy)

SLAHRD reduces the first nb columns of a general rectangular matrix A so that elements below the k-th subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part of A. fr fr that's the whole gig 🫢


🎯 Purpose:

!> This routine is deprecated and has been replaced by routine SLAHR2.

ok first of all, she's deprecated β€” like, respectfully, use SLAHR2 instead. this is the vintage piece in the back of the closet, cute but no longer the moment 😭 but if you are here, know this:

!> SLAHRD reduces the first NB columns of a real general n-by-(n-k+1) !> matrix A so that elements below the k-th subdiagonal are zero. The !> reduction is performed by an orthogonal similarity transformation !> QT * A * Q. The routine returns the matrices V and T which determine !> Q as a block reflector I - V*T*VT, and also the matrix Y = A * V * T.

so like, she does the transformation Q**T * A * Q, hands you back V and T which determine Q as the block reflector I - V*T*V**T, plus Y = A * V * T. giving you everything you need, main character energy πŸ‘‘


🧚 Parameters (the whole cast, no one gets cut) 🧚

  • N β€” N is INTEGER. The order of the matrix A. she's the size of the whole situation.
  • K β€” K is INTEGER. The offset for the reduction. Elements below the k-th subdiagonal in the first NB columns are reduced to zero. like, that's the line, bestie.
  • NB β€” NB is INTEGER. The number of columns to be reduced. the count of columns getting the treatment ✨
  • A β€” A is REAL array, dimension (LDA,N-K+1).
!> On entry, the n-by-(n-k+1) general matrix A. !> On exit, the elements on and above the k-th subdiagonal in !> the first NB columns are overwritten with the corresponding !> elements of the reduced matrix; the elements below the k-th !> subdiagonal, with the array TAU, represent the matrix Q as a !> product of elementary reflectors. The other columns of A are !> unchanged. See Further Details.

so she goes in as your regular matrix and comes out transformed πŸ’… the reduced bits up top, the reflector stuff below the k-th subdiagonal along with TAU, and the other columns? untouched, living their truth.

  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,N). that's a hard requirement, not a suggestion πŸ”₯
  • TAU β€” TAU is REAL array, dimension (NB). The scalar factors of the elementary reflectors. See Further Details. the little scalars making it all work πŸ“
  • T β€” T is REAL array, dimension (LDT,NB). The upper triangular matrix T. triangular and thriving.
  • LDT β€” LDT is INTEGER. The leading dimension of the array T. LDT >= NB. respect the constraint pls πŸŽ€
  • Y β€” Y is REAL array, dimension (LDY,NB). The n-by-nb matrix Y. that's literally it, that's the whole description.
  • LDY β€” LDY is INTEGER. The leading dimension of the array Y. LDY >= N. again β€” constraint, not vibe, not optional πŸ’œ

πŸ’– Author πŸ’–

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

a whole group project that actually got finished, we love to see it 🫢


🌟 Further Details: 🌟

!> The matrix Q is represented as a product of nb elementary reflectors Q = H(1) H(2) . . . H(nb).
!> Each H(i) has the form H(i) = I - tau * v * v**T
!> where tau is a real scalar, and v is a real vector with !> v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored on exit in !> A(i+k+1:n,i), and tau in TAU(i).

so tau is a real scalar, v is a real vector, and the front of v is zeros, the v(i+k) slot is literally 1, and the tail of v gets stashed on exit in A(i+k+1:n,i) while tau goes into TAU(i). iykyk ✨

!> The elements of the vectors v together form the (n-k+1)-by-nb matrix !> V which is needed, with T and Y, to apply the transformation to the !> unreduced part of the matrix, using an update of the form: !> A := (I - V*T*VT) * (A - Y*VT).

so the v vectors team up into the (n-k+1)-by-nb matrix V, and with T and Y you get to apply the transformation to the unreduced part of the matrix, via the update A := (I - V*T*V**T) * (A - Y*V**T). that's the formula, memorize it or don't, she's not gonna quiz you 🌸

!> The contents of A on exit are illustrated by the following example !> with n = 7, k = 3 and nb = 2: ( a h a a a ) ( a h a a a ) ( a h a a a ) ( h h a a a ) ( v1 h a a a ) ( v1 v2 a a a ) ( v1 v2 a a a )
!> where a denotes an element of the original matrix A, h denotes a !> modified element of the upper Hessenberg matrix H, and vi denotes an !> element of the vector defining H(i).

so like, legend: a = original matrix A element (the untouched ones, slay), h = a modified element of the upper Hessenberg matrix H, and vi = an element of the vector defining H(i). n = 7, k = 3, nb = 2 for this little diagram πŸ¦‹


πŸ“Œ Definition at line 166 of file slahrd.f.


πŸ’€ Author

Generated automatically by Doxygen for LAPACK from the source code. not a human, not a girlie, just a tool doing its thing πŸ™ˆ


LAPACK Version 3.12.0 β€” and that's the whole page bestie, /home/abui...D/slahrd.f(3) signing off, deprecated but never forgotten πŸ’œπŸŽ€βœ¨

πŸ“¦ where this page comes from