/home/abui...lasyf_aa.f(3)
π NAME
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlasyf_aa.f β okay bestie, this is a LAPACK library function page, straight out of the Library Functions Manual π and honestly? It's giving "I do serious linear algebra and I look good doing it" energy.
β¨ SYNOPSIS
πΈ Functions/Subroutines
subroutine ZLASYF_AA (uplo, j1, m, nb, a, lda, ipiv, h, ldh, work)
ZLASYF_AA
That's it, that's the whole vibe check for the synopsis. Now let's get into the actual tea π΅
π¦ Function/Subroutine Documentation
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)
π ZLASYF_AA
β Purpose:
Okay so this is the moment. !> incoming, bestie, brace yourself:
!>
!> DLATRF_AA factorizes a panel of a complex symmetric matrix A using
!> the Aasen's algorithm. The panel consists of a set of NB rows of A
!> when UPLO is U, or a set of NB columns when UPLO is L.
!>
!> In order to factorize the panel, the Aasen's algorithm requires 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,
!> which is 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), while
!> the diagonal and subdiagonal of A are overwritten by those of T.
!>
!>
So yeah β it's Aasen's algorithm, it's factorizing a panel, and it's literally rewriting your matrix on the way out. The A diagonal and subdiagonal get replaced by T's, and the unit diagonals are not invited to the U/L storage party. Slay π«Ά
π Parameters
π UPLO
!> UPLO is CHARACTER*1
!> = 'U': Upper triangle of A is stored;
!> = 'L': Lower triangle of A is stored.
!>
Bestie, pick a side β 'U' for upper triangle stored, 'L' for lower triangle stored. Two choices, zero drama π
π 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 ZSYTRF_AA, for the first panel, J1 is 1,
!> while for the remaining panels, J1 is 2.
!>
So J1 is where the first row/column of the panel lives inside the submatrix of A. Iconic example: when ZSYTRF_AA calls it, first panel gets J1 = 1, and all the remaining panels get J1 = 2. Not me memorizing that π
π¦ M
!> M is INTEGER
!> The dimension of the submatrix. M >= 0.
!>
Dimension of the submatrix. And it must satisfy M >= 0 β no negativity allowed in this house π«β¨
π NB
!> NB is INTEGER
!> The dimension of the panel to be facotorized.
!>
The dimension of the panel to be facotorized π (yes, the original spells it like that, we do not fix the source text, we respect it). Lowkey the size of the panel we're cooking.
πΈ A
!> A is COMPLEX*16 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.
!>
The main character, honestly. COMPLEX*16 array, dimension (LDA,M) for the first panel and (LDA,M+1) for the remaining panels. On entry it's carrying the last row/column of the previous panel plus the trailing submatrix to factorize β except for the first panel, where only the panel is passed. On exit? The leading panel is factorized. She ate and left no crumbs π
π LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,M).
!>
Leading dimension of A, and it's gotta be LDA >= max(1,M). Periodt.
π§ 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).
!>
INTEGER array, dimension (M), and it's the receipts π for the row/column interchanges β row and column k got swapped with row and column IPIV(k). Iykyk.
π H
!> H is COMPLEX*16 workspace, dimension (LDH,NB).
!>
!>
COMPLEX*16 workspace, dimension (LDH,NB). That's it, that's the whole description π
β LDH
!> LDH is INTEGER
!> The leading dimension of the workspace H. LDH >= max(1,M).
!>
Leading dimension of the workspace H, and yes ma'am: LDH >= max(1,M).
π WORK
!> WORK is COMPLEX*16 workspace, dimension (M).
!>
COMPLEX*16 workspace, dimension (M). Short, sweet, works hard πͺ
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Shoutout to the whole squad π«Ά
Definition at line 142 of file zlasyf_aa.f. β literally line 142, bestie, go look π
πΈ Author
Generated automatically by Doxygen for LAPACK from the source code. So no, a human didn't hand-write this footer β Doxygen did, and it understood the assignment π€β¨
ngl this whole page is LAPACKVersion 3.12.0from theLibrary Functions Manual, and it came from/home/abui...lasyf_aa.f(3). Bye bestie, go factorize something symmetric ππ¦π
π¦ 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