TESTING/LIN/zlavsp.f(3)
π TESTING/LIN/zlavsp.f(3) π
okay so bestie, we're looking at the zlavsp page from the TESTING/LIN corner of the LAPACK universe β it's a Fortran subroutine docs page, manual-page style, and it's lowkey iconic. Let's get into it. π«Ά
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine zlavsp (uplo, trans, diag, n, nrhs, a, ipiv, b, ldb, info)
ZLAVSP β that's the name, and yes it's all caps because Fortran is dramatic like that. π
Function/Subroutine Documentation
subroutine zlavsp (character uplo, character trans, character diag, integer n, integer nrhs, complex*16, dimension( * ) a, integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b, integer ldb, integer info)
ZLAVSP
πΈ DESCRIPTION πΈ
Purpose:
!>!> ZLAVSP performs one of the matrix-vector operations!>x := A*x or x := A^T*x,!> where x is an N element vector and A is one of the factors!> from the symmetric factorization computed by ZSPTRF.!> ZSPTRF produces a factorization of the form!>U * D * U^T or L * D * L^T,!> where U (or L) is a product of permutation and unit upper (lower)!> triangular matrices, U^T (or L^T) is the transpose of!> U (or L), and D is symmetric and block diagonal with 1 x 1 and!> 2 x 2 diagonal blocks. The multipliers for the transformations!> and the upper or lower triangular parts of the diagonal blocks!> are stored columnwise in packed format in the linear array A.!>!> If TRANS = 'N' or 'n', ZLAVSP multiplies either by U or U * D!> (or L or L * D).!> If TRANS = 'C' or 'c', ZLAVSP multiplies either by U^T or D * U^T!> (or L^T or D * L^T ).!>
so basically, ZLAVSP is the vibe-check enforcer for multiplying a vector by one of the factors from a symmetric factorization. It's giving "I know what ZSPTRF did last summer" and it's ready to apply those transformations. The packed format in A is doing the most, but that's the assignment. π
π PARAMETERS π
UPLOβCHARACTER*1on entry,UPLOspecifies whether the triangular matrix stored inAis upper or lower triangular.UPLO = 'U'or'u'β the matrix is upper triangular. πUPLO = 'L'or'l'β the matrix is lower triangular. π§ unchanged on exit.
TRANSβCHARACTER*1on entry,TRANSspecifies the operation to be performed, and it's honestly straightforward:TRANS = 'N'or'n'βx := A*x. β¨TRANS = 'T'or't'βx := A^T*x. π₯ unchanged on exit.
DIAGβCHARACTER*1on entry,DIAGspecifies whether the diagonal blocks are assumed to be unit matrices:DIAG = 'U'or'u'β diagonal blocks are unit matrices. πDIAG = 'N'or'n'β diagonal blocks are non-unit. πΈ unchanged on exit.
NβINTEGERon entry,Nspecifies the order of the matrixA.Nmust be at least zero. (no negatives, bestie, it's not that kind of party) unchanged on exit.NRHSβINTEGERon entry,NRHSspecifies the number of right hand sides β i.e., the number of vectorsxto be multiplied byA.NRHSmust be at least zero. unchanged on exit.AβCOMPLEX*16 array, dimension( N*(N+1)/2 )on entry,Acontains a block diagonal matrix and the multipliers of the transformations used to obtain it, stored as a packed triangular matrix. unchanged on exit. (she's just here to be read, not rewritten, periodt)IPIVβINTEGER array, dimension( N )on entry,IPIVcontains the vector of pivot indices as determined byZSPTRF.- If
IPIV( K ) = K, no interchange was done. π - If
IPIV( K ) <> KbutIPIV( K ) > 0, then rowKwas interchanged with rowIPIV( K )and a1 x 1pivot block was used. - If
IPIV( K ) < 0andUPLO = 'U', then rowK-1was exchanged with row| IPIV( K ) |and a2 x 2pivot block was used. - If
IPIV( K ) < 0andUPLO = 'L', then rowK+1was exchanged with row| IPIV( K ) |and a2 x 2pivot block was used.
- If
BβCOMPLEX*16 array, dimension( LDB, NRHS )on entry,BcontainsNRHSvectors of lengthN. on exit,Bis overwritten with the productA * B. π₯ (she ate and left no crumbs, but also she left the result inB)LDBβINTEGERon entry,LDBcontains the leading dimension ofBas declared in the calling program.LDBmust be at leastmax( 1, N ). unchanged on exit.INFOβINTEGERINFOis the error flag.- On exit, a value of
0indicates a successful exit. π - A negative value, say
-K, indicates that theK-th argument has an illegal value. π (so check your inputs, bestie,INFOwill absolutely call you out)
- On exit, a value of
π AUTHOR π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 129 of file zlavsp.f. π
β AUTHOR (the meta one) β
Generated automatically by Doxygen for LAPACK from the source code. π€β¨
LAPACK β Version 3.12.0 β TESTING/LIN/zlavsp.f(3) that's the whole page, bestie. no cap, every flag and every pivot rule is here. now go slay those symmetric factorizations. ππ¦
π¦ 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