/home/abui...D/slahrd.f(3)
π¦ 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 firstnbcolumns of a general rectangular matrixAso that elements below the k-th subdiagonal are zero, and returns auxiliary matrices which are needed to apply the transformation to the unreduced part ofA. 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 matrixA. 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 firstNBcolumns 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 arrayA.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 matrixT. triangular and thriving.LDTβLDT is INTEGER. The leading dimension of the arrayT.LDT >= NB. respect the constraint pls πYβY is REAL array, dimension (LDY,NB). The n-by-nb matrixY. that's literally it, that's the whole description.LDYβLDY is INTEGER. The leading dimension of the arrayY.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
- 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