SRC/clahef_aa.f(3)

✨ SRC/clahef_aa.f(3) ✨

okay so this is a page from the Library Functions Manual bestie, and it's literally all about one little Fortran subroutine that does Big Math. buckle up πŸ’–


🌸 NAME 🌸

SRC/clahef_aa.f β€” that's the file, that's the vibe, main character energy fr fr


πŸŽ€ SYNOPSIS πŸŽ€

Functions/Subroutines

ok so there's exactly one icon here and she's serving:

  • subroutine clahef_aa (uplo, j1, m, nb, a, lda, ipiv, h, ldh, work) β€” the one and only, CLAHEF_AA herself πŸ‘‘

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

here's the full signature, no cap, copied exactly:

subroutine clahef_aa (character uplo, integer j1, integer m, integer nb,
    complex, dimension( lda, * ) a, integer lda, integer, dimension( * )
    ipiv, complex, dimension( ldh, * ) h, integer ldh, complex, dimension( *
    ) work)

CLAHEF_AA β€” spelled out, all caps, iconic.


πŸ”₯ Purpose πŸ”₯

ok so what does she DO. CLAHEF_AA factorizes a panel of a complex hermitian matrix A using the Aasen's algorithm. the panel is a set of NB rows of A when UPLO is U, or a set of NB columns when UPLO is L. slay 🫢

and like, to factorize the panel, Aasen's algorithm needs the last row (or column) of the previous panel. so the first row, or column, of A is set to be the first row, or column, of an identity matrix β€” which is what gets used to factorize the first panel. cute little bootstrap moment honestly πŸ’–

the resulting J-th row of U, or J-th column of L, is stored in the (J-1)-th row, or column, of A (without the unit diagonals), while the diagonal and subdiagonal of A are overwritten by those of T. yes, overwritten. that's just how she rolls πŸ’€


🌈 Parameters 🌈

  • UPLO β€” UPLO is CHARACTER*1
    • = 'U': upper triangle of A is stored
    • = 'L': lower triangle of A is stored
  • J1 β€” J1 is INTEGER
    • the location of the first row, or column, of the panel within the submatrix of A, passed to this routine. e.g. when called by CHETRF_AA, for the first panel, J1 is 1, while for the remaining panels, J1 is 2. iykyk
  • M β€” M is INTEGER
    • the dimension of the submatrix. M >= 0. (zero is allowed bestie, she's flexible)
  • NB β€” NB is INTEGER
    • the dimension of the panel to be facotorized πŸ’… yes we're keeping the typo energy, she's doing her best
  • A β€” A is COMPLEX array, dimension (LDA,M) for the first panel, while dimension (LDA,M+1) for the remaining panels
    • on entry, A contains the last row, or column, of the previous panel, and the trailing submatrix of A to be factorized β€” except for the first panel, only the panel is passed
    • on exit, the leading panel is factorized. she ATE πŸ”₯
  • LDA β€” LDA is INTEGER
    • the leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” IPIV is INTEGER array, dimension (N)
    • details of the row and column interchanges: the row and column k were interchanged with the row and column IPIV(k). receipts 🧾
  • H β€” H is COMPLEX workspace, dimension (LDH,NB)
  • LDH β€” LDH is INTEGER
    • the leading dimension of the workspace H. LDH >= max(1,M).
  • WORK β€” WORK is COMPLEX workspace, dimension (M).

πŸ‘‘ Author πŸ‘‘

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

the whole squad showed up, we love a collab 🫢✨


⭐ Definition at line 142 of file clahef_aa.f. ⭐

literally line 142, go look, she's right there πŸ“


πŸ¦‹ Author πŸ¦‹

generated automatically by Doxygen for LAPACK from the source code. not a human, just a very diligent little robot doing her thing πŸ€–πŸ’œ


πŸ’€ reminder bestie: A, IPIV, and the diagonal/subdiagonal situation all get overwritten, so don't come crying if your matrix doesn't look the same after. that's the whole point, no cap.

ok that's the whole page!! mwah πŸ’‹ this was SRC/clahef_aa.f(3) from LAPACK, Version 3.12.0 β€” see you in the next man page, bestie, periodt πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from