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_AAherself π
π 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βUPLOisCHARACTER*1= 'U': upper triangle ofAis stored= 'L': lower triangle ofAis stored
J1βJ1isINTEGER- the location of the first row, or column, of the panel within the submatrix of
A, passed to this routine. e.g. when called byCHETRF_AA, for the first panel,J1is1, while for the remaining panels,J1is2. iykyk
- the location of the first row, or column, of the panel within the submatrix of
MβMisINTEGER- the dimension of the submatrix.
M >= 0. (zero is allowed bestie, she's flexible)
- the dimension of the submatrix.
NBβNBisINTEGER- the dimension of the panel to be facotorized π yes we're keeping the typo energy, she's doing her best
AβAisCOMPLEXarray, dimension(LDA,M)for the first panel, while dimension(LDA,M+1)for the remaining panels- on entry,
Acontains the last row, or column, of the previous panel, and the trailing submatrix ofAto be factorized β except for the first panel, only the panel is passed - on exit, the leading panel is factorized. she ATE π₯
- on entry,
LDAβLDAisINTEGER- the leading dimension of the array
A.LDA >= max(1,N).
- the leading dimension of the array
IPIVβIPIVisINTEGERarray, dimension(N)- details of the row and column interchanges: the row and column
kwere interchanged with the row and columnIPIV(k). receipts π§Ύ
- details of the row and column interchanges: the row and column
HβHisCOMPLEXworkspace, dimension(LDH,NB)LDHβLDHisINTEGER- the leading dimension of the workspace
H.LDH >= max(1,M).
- the leading dimension of the workspace
WORKβWORKisCOMPLEXworkspace, 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
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms