lahef_aa(3)

πŸ’… lahef_aa(3) β€” Library Functions Manual πŸ’…

🌸 NAME 🌸

lahef_aa β€” la{he,sy}f_aa: triangular factor partial factor. That's the whole vibe, bestie. ✨


✨ SYNOPSIS ✨

Functions

  • subroutine clahef_aa (uplo, j1, m, nb, a, lda, ipiv, h, ldh, work) β€” CLAHEF_AA
  • subroutine clasyf_aa (uplo, j1, m, nb, a, lda, ipiv, h, ldh, work) β€” CLASYF_AA
  • subroutine dlasyf_aa (uplo, j1, m, nb, a, lda, ipiv, h, ldh, work) β€” DLASYF_AA
  • subroutine slasyf_aa (uplo, j1, m, nb, a, lda, ipiv, h, ldh, work) β€” SLASYF_AA
  • subroutine zlahef_aa (uplo, j1, m, nb, a, lda, ipiv, h, ldh, work) β€” ZLAHEF_AA
  • subroutine zlasyf_aa (uplo, j1, m, nb, a, lda, ipiv, h, ldh, work) β€” ZLASYF_AA

πŸ¦‹ Detailed Description πŸ¦‹

Okay so this is the detailed description zone. Keep scrolling for the full function documentation tea. 🍡

πŸŽ€ Function Documentation πŸŽ€

πŸ’– subroutine clahef_aa β€” CLAHEF_AA πŸ’–

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

πŸ’« Purpose πŸ’«

Okay so 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. πŸ’…

To factorize the panel, the Aasen's algorithm needs the last row, or column, of the previous panel. The first row, or column, of A is set to be the first row, or column, of an identity matrix, and that's what gets used to factorize the first panel. ✨

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). Meanwhile the diagonal and subdiagonal of A are overwritten by those of T. No cap. πŸ’–

πŸŽ€ 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.
  • M β€” M is INTEGER; the dimension of the submatrix. M >= 0.
  • NB β€” NB is INTEGER; the dimension of the panel to be facotorized.
  • 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. πŸ¦‹
  • 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).
  • 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.

πŸ“Œ Definition at line 142 of file clahef_aa.f. πŸ“Œ


πŸ’– subroutine clasyf_aa β€” CLASYF_AA πŸ’–

subroutine clasyf_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)

CLASYF_AA

πŸ’« Purpose πŸ’«

Okay so DLATRF_AA factorizes a panel of a complex symmetric 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. πŸ’…

To factorize the panel, the Aasen's algorithm needs the last row, or column, of the previous panel. The first row, or column, of A is set to be the first row, or column, of an identity matrix, and that's what gets used to factorize the first panel. ✨

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). Meanwhile the diagonal and subdiagonal of A are overwritten by those of T. Periodt. πŸ’–

πŸŽ€ 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 CSYTRF_AA, for the first panel, J1 is 1, while for the remaining panels, J1 is 2.
  • M β€” M is INTEGER; the dimension of the submatrix. M >= 0.
  • NB β€” NB is INTEGER; the dimension of the panel to be facotorized.
  • 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. πŸ¦‹
  • LDA β€” LDA is INTEGER; the leading dimension of the array A. LDA >= max(1,M).
  • IPIV β€” IPIV is INTEGER array, dimension (M); details of the row and column interchanges, the row and column k were interchanged with the row and column IPIV(k).
  • 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.

πŸ“Œ Definition at line 142 of file clasyf_aa.f. πŸ“Œ


πŸ’– subroutine dlasyf_aa β€” DLASYF_AA πŸ’–

subroutine dlasyf_aa (character uplo, integer j1, integer m, integer nb,
    double precision, dimension( lda, * ) a, integer lda, integer,
    dimension( * ) ipiv, double precision, dimension( ldh, * ) h, integer
    ldh, double precision, dimension( * ) work)

DLASYF_AA

πŸ’« Purpose πŸ’«

Okay so DLATRF_AA factorizes a panel of a real symmetric 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. πŸ’…

To factorize the panel, the Aasen's algorithm needs the last row, or column, of the previous panel. The first row, or column, of A is set to be the first row, or column, of an identity matrix, and that's what gets used to factorize the first panel. ✨

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). Meanwhile the diagonal and subdiagonal of A are overwritten by those of T. Iconic. πŸ’–

πŸŽ€ 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 DSYTRF_AA, for the first panel, J1 is 1, while for the remaining panels, J1 is 2.
  • M β€” M is INTEGER; the dimension of the submatrix. M >= 0.
  • NB β€” NB is INTEGER; the dimension of the panel to be facotorized.
  • A β€” A is DOUBLE PRECISION 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. πŸ¦‹
  • LDA β€” LDA is INTEGER; the leading dimension of the array A. LDA >= max(1,M).
  • IPIV β€” IPIV is INTEGER array, dimension (M); details of the row and column interchanges, the row and column k were interchanged with the row and column IPIV(k).
  • H β€” H is DOUBLE PRECISION workspace, dimension (LDH,NB).
  • LDH β€” LDH is INTEGER; the leading dimension of the workspace H. LDH >= max(1,M).
  • WORK β€” WORK is DOUBLE PRECISION workspace, dimension (M).

πŸ‘‘ Author πŸ‘‘

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

πŸ“Œ Definition at line 142 of file dlasyf_aa.f. πŸ“Œ


πŸ’– subroutine slasyf_aa β€” SLASYF_AA πŸ’–

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

SLASYF_AA

πŸ’« Purpose πŸ’«

...and the resulting J-th row of U (or J-th column of L, depending on which triangle you told it about) gets tucked into the (J-1)-th row or column of A β€” without the unit diagonals, bestie, they're implied β€” while the diagonal and subdiagonal of A get straight-up overwritten by those of T. Very "out with the old, in with the new." πŸ’…

Parameters

  • UPLO β€” CHARACTER*1. This is your vibe check for which triangle we're playing with:
    • = 'U': the upper triangle of A is stored;
    • = 'L': the lower triangle of A is stored.
  • J1 β€” INTEGER. Where the first row (or column) of the panel sits inside the submatrix of A that got handed to this routine. Like, when SSYTRF_AA calls it, the first panel has J1 = 1, and every panel after that has J1 = 2. Consistency icon.
  • M β€” INTEGER. The dimension of the submatrix. M >= 0, no negativity allowed, periodt.
  • NB β€” INTEGER. The dimension of the panel to be factorized. (The source spells it "facotorized" β€” adorable, we stan a typo, but you know what she means. πŸ“)
  • A β€” REAL array, dimension (LDA,M) for the first panel, and dimension (LDA,M+1) for the remaining panels. On entry, A holds the last row (or column) of the previous panel, plus the trailing submatrix of A that needs factorizing β€” except for the very first panel, where only the panel itself is passed in. On exit, the leading panel is factorized. Glow-up complete. ✨
  • LDA β€” INTEGER. Leading dimension of the array A. LDA >= max(1,M). Respect the constraint or the math will simply not be mathing.
  • IPIV β€” INTEGER array, dimension (M). The receipts of the row and column interchanges: row and column k were swapped with row and column IPIV(k). iykyk.
  • H β€” REAL workspace, dimension (LDH,NB). Just doing workspace things. 🫢
  • LDH β€” INTEGER. Leading dimension of the workspace H. LDH >= max(1,M).
  • WORK β€” REAL workspace, dimension (M). A lil scratchpad, we love her.

Author

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

Definition at line 142 of file slasyf_aa.f.


πŸ’œ zlahef_aa πŸ’œ

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

Purpose

Okay so the purpose block literally opens with the name DLAHEF_AA even though this is ZLAHEF_AA β€” yes, the source document lowkey fumbled that one, and we're reporting it faithfully because details are sacred. πŸ™ˆ

ZLAHEF_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. Main character energy, honestly.

To actually factorize the panel, the 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, and that's what factorizes the very first panel. Clever little bootstrap moment. 🧚

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 β€” and the diagonal and subdiagonal of A get overwritten by those of T. Same as always, no cap.

Parameters

  • UPLO β€” CHARACTER*1:
    • = 'U': the upper triangle of A is stored;
    • = 'L': the lower triangle of A is stored.
  • J1 β€” INTEGER. The location of the first row or column of the panel within the submatrix of A passed to this routine. For example, when ZHETRF_AA calls it: first panel β†’ J1 is 1; remaining panels β†’ J1 is 2. Iconic and predictable.
  • M β€” INTEGER. The dimension of the submatrix. M >= 0.
  • NB β€” INTEGER. The dimension of the panel to be factorized. (Yes, "facotorized" again in the source. She's consistent, we love her for it. 😭)
  • A β€” COMPLEX*16 array, dimension (LDA,M) for the first panel, and dimension (LDA,M+1) for the remaining panels. On entry, A contains the last row or column of the previous panel plus the trailing submatrix of A to be factorized β€” except for the first panel, where only the panel is passed. On exit, the leading panel is factorized. ✨
  • LDA β€” INTEGER. The leading dimension of the array A. LDA >= max(1,N). ⚠️ Heads up: this one is written as N in the source, unlike her sisters who say M. Copy it exactly, don't get cute with it.
  • IPIV β€” INTEGER array, dimension (N). Details of the row and column interchanges: row and column k were interchanged with row and column IPIV(k). ⚠️ Also N here, not M. Yes really. Keep it.
  • H β€” COMPLEX*16 workspace, dimension (LDH,NB). Workspace bestie. 🫢
  • LDH β€” INTEGER. The leading dimension of the workspace H. LDH >= max(1,M).
  • WORK β€” COMPLEX*16 workspace, dimension (M).

Author

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

Definition at line 142 of file zlahef_aa.f.


🌈 zlasyf_aa 🌈

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

Purpose

And the purpose block here opens with DLATRF_AA, which is also not this routine's name. The source is out here living its truth. We transcribe, we don't judge. πŸ’€

ZLASYF_AA factorizes a panel of a complex symmetric matrix A using the Aasen's algorithm. Panel = a set of NB rows of A when UPLO is U, or a set of NB columns when UPLO is L. She's symmetric, not hermitian β€” know the difference, it matters, iykyk.

Same drill as ever: the 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, and that little identity action is what factorizes the first panel. ✨

The resulting J-th row of U, or J-th column of L, lands in the (J-1)-th row or column of A, without the unit diagonals, and the diagonal and subdiagonal of A are overwritten by those of T. Periodt.

Parameters

  • UPLO β€” CHARACTER*1:
    • = 'U': the upper triangle of A is stored;
    • = 'L': the lower triangle of A is stored.
  • J1 β€” INTEGER. Where the first row or column of the panel lives within the submatrix of A passed to this routine. E.g. when ZSYTRF_AA calls it: first panel β†’ J1 is 1; remaining panels β†’ J1 is 2. Slay, consistent.
  • M β€” INTEGER. The dimension of the submatrix. M >= 0.
  • NB β€” INTEGER. The dimension of the panel to be factorized. (The "facotorized" typo is back for round three β€” she's a trilogy now. πŸŽ€)
  • A β€” COMPLEX*16 array, dimension (LDA,M) for the first panel, and dimension (LDA,M+1) for the remaining panels. On entry: the last row or column of the previous panel plus the trailing submatrix of A to be factorized, except for the first panel where only the panel is passed. On exit: the leading panel is factorized. Chef's kiss. πŸ’…
  • LDA β€” INTEGER. The leading dimension of the array A. LDA >= max(1,M). Back to M here, bestie β€” do not carry over the N from the previous routine, that's a different girl.
  • IPIV β€” INTEGER array, dimension (M). Details of the row and column interchanges: row and column k were interchanged with row and column IPIV(k). Also M. We're back on track.
  • H β€” COMPLEX*16 workspace, dimension (LDH,NB).
  • LDH β€” INTEGER. The leading dimension of the workspace H. LDH >= max(1,M).
  • WORK β€” COMPLEX*16 workspace, dimension (M).

Author

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

Definition at line 142 of file zlasyf_aa.f.


🌸 Author 🌸

Generated automatically by Doxygen for LAPACK from the source code. Not a human, not a vibe curator, just a doc generator doing her little thing. 🫢


TL;DR from your girl: lahef_aa is the Aasen's-algorithm panel-factorizing family β€” s/d/c/z variants, symmetric and hermitian flavours β€” and every single one of them wants M >= 0, a sane LDA/LDH, and a WORK array of dimension (M). Don't skip the IPIV receipts. πŸ§šβ€β™€οΈ

That's the whole page, bestie β€” shoutout to LAPACK Version 3.12.0 for the source and version, and this lahef_aa(3) page is officially a wrap. Go factorize something symmetric. πŸ’–βœ¨

πŸ“¦ where this page comes from