SRC/csytrf_aa_2stage.f(3)
Okay bestie, this page is SRC/csytrf_aa_2stage.f(3) from the Library Functions Manual, and it's about a Fortran subroutine that's lowkey iconic. We're keeping every single deet, so grab a strawberry and let's go. πβ¨
π NAME π
SRC/csytrf_aa_2stage.f β that's the file/page name, front and center. π«Ά
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine csytrf_aa_2stage (uplo, n, a, lda, tb, ltb, ipiv, ipiv2,
work, lwork, info)
CSYTRF_AA_2STAGE
π Function/Subroutine Documentation π
subroutine csytrf_aa_2stage (character uplo, integer n, complex, dimension(
lda, * ) a, integer lda, complex, dimension( * ) tb, integer ltb,
integer, dimension( * ) ipiv, integer, dimension( * ) ipiv2, complex,
dimension( * ) work, integer lwork, integer info)
CSYTRF_AA_2STAGE
β¨ Purpose β¨
CSYTRF_AA_2STAGE computes the factorization of a complex symmetric matrix A using the Aasen's algorithm. The form of the factorization is:
A = U**T*T*U or A = L*T*L**T
where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is a complex symmetric band matrix with the bandwidth of NB (NB is internally selected and stored in TB( 1 ), and T is LU factorized with partial pivoting).
This is the blocked version of the algorithm, calling Level 3 BLAS. Blocked and booked, periodt. π
π«Ά Parameters π«Ά
UPLOβCHARACTER*1:= 'U': Upper triangle ofAis stored;= 'L': Lower triangle ofAis stored. π¦NβINTEGER: the order of the matrixA.N >= 0.AβCOMPLEXarray, dimension(LDA,N). On entry, the hermitian matrixA. IfUPLO = 'U', the leadingN-by-Nupper triangular part ofAcontains the upper triangular part of the matrixA, and the strictly lower triangular part ofAis not referenced. IfUPLO = 'L', the leadingN-by-Nlower triangular part ofAcontains the lower triangular part of the matrixA, and the strictly upper triangular part ofAis not referenced.
On exit, L is stored below (or above) the subdiagonal blocks, when UPLO is 'L' (or 'U').
LDAβINTEGER: the leading dimension of the arrayA.LDA >= max(1,N).TBβCOMPLEXarray, dimension(LTB). On exit, details of the LU factorization of the band matrix.LTBβINTEGER: the size of the arrayTB.LTB >= 4*N, internally used to selectNBsuch thatLTB >= (3*NB+1)*N.
If LTB = -1, then a workspace query is assumed; the routine only calculates the optimal size of LTB, returns this value as the first entry of TB, and no error message related to LTB is issued by XERBLA. No XERBLA drama for this one, bestie.
IPIVβINTEGERarray, dimension(N). On exit, it contains the details of the interchanges, i.e., the row and columnkofAwere interchanged with the row and columnIPIV(k).IPIV2βINTEGERarray, dimension(N). On exit, it contains the details of the interchanges, i.e., the row and columnkofTwere interchanged with the row and columnIPIV(k). Yes, it saysIPIV(k)here too, exactly as written. πWORKβCOMPLEXworkspace of sizeLWORK.LWORKβINTEGER: the size ofWORK.LWORK >= N, internally used to selectNBsuch thatLWORK >= N*NB.
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
INFOβINTEGER:= 0: successful exit;< 0: ifINFO = -i, thei-th argument had an illegal value;> 0: ifINFO = i, band LU factorization failed oni-th column. If this is positive, the factorization did not slay. π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 158 of file csytrf_aa_2stage.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
Bye bestie! Cute little footer sign-off: this is LAPACK Version 3.12.0, from source SRC/csytrf_aa_2stage.f(3). The footer doesn't give a separate date, so no date was invented β honesty is the policy. πβ¨π
π¦ 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