SRC/zsysv_aa_2stage.f(3)
Hey bestie π welcome to the SRC/zsysv_aa_2stage.f page from the Library Functions Manual β this is the LAPACK 2-stage symmetric solver lore, and yes itβs giving main-character Fortran energy.
π NAME π
SRC/zsysv_aa_2stage.f
β¨ SYNOPSIS β¨
πΈ Functions/Subroutines πΈ
subroutine zsysv_aa_2stage (uplo, n, nrhs, a, lda, tb, ltb, ipiv, ipiv2,
b, ldb, work, lwork, info)
ZSYSV_AA_2STAGE computes the solution to system of linear equations
A * X = B for SY matrices
ZSYSV_AA_2STAGE is literally here to compute the solution to the system of linear equations A * X = B for SY matrices. Slay. π
π Function/Subroutine Documentation π
subroutine zsysv_aa_2stage (character uplo, integer n, integer nrhs,
complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( *
) tb, integer ltb, integer, dimension( * ) ipiv, integer, dimension( * )
ipiv2, complex*16, dimension( ldb, * ) b, integer ldb, complex*16,
dimension( * ) work, integer lwork, integer info)
β¨ Purpose β¨
Okay so hereβs the tea β: ZSYSV_AA_2STAGE computes the solution to a complex system of linear equations
A * X = B,
where A is an N-by-N symmetric matrix and X and B are N-by-NRHS matrices.
Aasenβs 2-stage algorithm is used to factor A as
A = U**T * T * U, if UPLO = 'U', or
A = L * T * L**T, if UPLO = 'L',
where U (or L) is a product of permutation and unit upper (lower) triangular matrices, and T is symmetric and band. The matrix T is then LU-factored with partial pivoting. The factored form of A is then used to solve the system of equations A * X = B.
This is the blocked version of the algorithm, calling Level 3 BLAS. Periodt. π₯
π Parameters π
UPLOβCHARACTER*1. Set it to'U'and the upper triangle ofAis stored; set it to'L'and the lower triangle ofAis stored. Thatβs the whole vibe check.NβINTEGER. The order of the matrixA. Constraint:N >= 0. No negative nonsense, bestie.NRHSβINTEGER. The number of right hand sides, i.e., the number of columns of the matrixB. Constraint:NRHS >= 0.AβCOMPLEX*16 array, dimension (LDA,N). On entry, itβs the symmetric 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. Constraint:LDA >= max(1,N).TBβCOMPLEX*16 array, dimension (LTB). On exit, it holds details of the LU factorization of the band matrix. Iconic.LTBβINTEGER. The size of the arrayTB. Constraint:LTB >= 4*N; internally itβs 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. So -1 here is a query moment, not a crash moment. π«Ά
IPIVβINTEGER array, dimension (N). On exit, it contains the details of the interchanges, i.e., the row and columnkofAwere interchanged with the row and columnIPIV(k). Track the swaps, bestie.IPIV2βINTEGER array, 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, thatβsIPIV(k)right there β keep it exactly as written. πBβCOMPLEX*16 array, dimension (LDB,NRHS). On entry, itβs the right hand side matrixB. On exit, itβs the solution matrixX. Glow-up complete. β¨LDBβINTEGER. The leading dimension of the arrayB. Constraint:LDB >= max(1,N).WORKβCOMPLEX*16 workspace of size LWORK. Thatβs the workspace, doing workspace things. π¦LWORKβINTEGER. The size ofWORK. Constraint:LWORK >= N; internally itβs 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. Workspace query behavior, slay. π
INFOβINTEGER. Exit status tea:= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.> 0: ifINFO = i, band LU factorization failed oni-th column.
π«Ά Author π«Ά
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 183 of file zsysv_aa_2stage.f.
π§ Author π§
Generated automatically by Doxygen for LAPACK from the source code.
Okay thatβs the page, bestie π β signing off from LAPACK Version 3.12.0, source SRC/zsysv_aa_2stage.f. The footerβs date slot is lowkey MIA on this one, so no cap β just version and source, and weβre out. π¦β¨
π¦ 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