/home/abui...a_2stage.f(3)
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zsysv_aa_2stage.f β bestie, this is a page from the LAPACK Library Functions Manual and it's literally the whole path of one Fortran source file π
yes the entire path is the name, that's just how these pages roll, no notes.
π¦ 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 equationsA * X = Bfor SY matrices πΈ
π 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)
ZSYSV_AA_2STAGE computes the solution to system of linear equations A * X = B for SY matrices π
π Purpose π
okay so, the actual 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.
!>
So basically: it solves the system, it does the Aasen's 2-stage factorization, T is symmetric and band, then T gets LU-factored with partial pivoting, and the factored form of A solves the system. And this is the blocked version, calling Level 3 BLAS β highkey the upgrade path, iykyk π₯
π Parameters π
UPLOβ it's aCHARACTER*1, and it picks which triangle you're giving it:= 'U': Upper triangle ofAis stored;= 'L': Lower triangle ofAis stored.
NβINTEGER, the order of the matrixA.N >= 0. π«ΆNRHSβINTEGER, the number of right hand sides, i.e. the number of columns of the matrixB.NRHS >= 0.AβCOMPLEX*16array, dimension(LDA,N). On entry, the symmetric matrixA:- If
UPLO = 'U', the leading N-by-N upper triangular part ofAcontains the upper triangular part of the matrixA, and the strictly lower triangular part ofAis not referenced. - If
UPLO = 'L', the leading N-by-N lower triangular part ofAcontains the lower triangular part of the matrixA, and the strictly upper triangular part ofAis not referenced. - On exit,
Lis stored below (or above) the subdiagonal blocks, whenUPLOis'L'(or'U'). β¨
- If
LDAβINTEGER, the leading dimension of the arrayA.LDA >= max(1,N).TBβCOMPLEX*16array, 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 ofLTB, returns this value as the first entry ofTB, and no error message related toLTBis issued byXERBLA. π noted.
- If
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).
π¨ bestie read this one carefully β the doc saysIPIV(k)here, notIPIV2(k). That's what it literally says, so I'm not touching it. Not me fixing LAPACK docs, no ma'am π
BβCOMPLEX*16array, dimension(LDB,NRHS). On entry, the right hand side matrixB. On exit, the solution matrixX. πLDBβINTEGER, the leading dimension of the arrayB.LDB >= max(1,N).WORKβCOMPLEX*16workspace 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 theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA. π
- If
INFOβINTEGER, the vibe check on your exit:= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value. π> 0: ifINFO = i, band LU factorization failed on i-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 (yes, again) π§
Generated automatically by Doxygen for LAPACK from the source code. π«Ά
and that's the whole page, bestie β no cap, we got every single parameter, every single>=, every singleXERBLAmention π
later, icon β this was LAPACK Version 3.12.0, footer and all, and yes the footer line is literally /home/abui...a_2stage.f(3) again because these generated pages love a callback πβ¨
π¦ 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