CLAVHE_ROOK(3)
okay bestie, welcome to TESTING/LI...avhe_rook.f(3) from the Library Functions Manual, section 3 β the source file is TESTING/LIN/clavhe_rook.f, and today's main character is CLAVHE_ROOK π
π«Ά.
β¨ NAME β¨
TESTING/LIN/clavhe_rook.f
π οΈ SYNOPSIS π οΈ
π¦ Functions/Subroutines π¦
subroutine clavhe_rook (uplo, trans, diag, n, nrhs, a, lda, ipiv, b,
ldb, info)
CLAVHE_ROOK β that's the icon, no cap π
π Function/Subroutine Documentation π
subroutine clavhe_rook (character uplo, character trans, character diag,
integer n, integer nrhs, complex, dimension( lda, * ) a, integer lda,
integer, dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer
ldb, integer info)
CLAVHE_ROOK
π― Purpose π―
Okay so CLAVHE_ROOK performs one of these matrix-vector operations:
x := A*x or x := A^H*x
where x is an N element vector and A is one of the factors from the block U*D*U' or L*D*L' factorization computed by CHETRF_ROOK.
- If
TRANS = 'N', it multiplies byUorU * D(orLorL * D). - If
TRANS = 'C', it multiplies byU'orD * U'(orL'orD * L').
π§© Parameters π§©
UPLOβCHARACTER*1. Tells you whether the factor stored inAis upper or lower triangular.= 'U': Upper triangular.= 'L': Lower triangular.TRANSβCHARACTER*1. Specifies the operation to be performed.= 'N':x := A*x.= 'C':x := A^H*x.DIAGβCHARACTER*1. Specifies whether or not the diagonal blocks are unit matrices. If the diagonal blocks are assumed to be unit, thenA = UorA = L, otherwiseA = U*DorA = L*D.= 'U': Diagonal blocks are assumed to be unit matrices.= 'N': Diagonal blocks are assumed to be non-unit matrices.NβINTEGER. The number of rows and columns of the matrixA.N >= 0.NRHSβINTEGER. The number of right hand sides, i.e., the number of vectorsxto be multiplied byA.NRHS >= 0.AβCOMPLEX array, dimension (LDA,N). The block diagonal matrixDand the multipliers used to obtain the factorUorLas computed byCHETRF_ROOK. Stored as a 2-D triangular matrix.LDAβINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).IPIVβINTEGER array, dimension (N). Details of the interchanges and the block structure ofD, as determined byCHETRF_ROOK.- If
UPLO = 'U':- Only the last
KBelements ofIPIVare set. - If
IPIV(k) > 0, then rows and columnskandIPIV(k)were interchanged andD(k,k)is a 1-by-1 diagonal block. - If
IPIV(k) < 0andIPIV(k-1) < 0, then rows and columnskand-IPIV(k)were interchanged and rows and columnsk-1and-IPIV(k-1)wereinerchaged(yes, that's the spelling in the source π),D(k-1:k,k-1:k)is a 2-by-2 diagonal block.
- Only the last
- If
UPLO = 'L':- Only the first
KBelements ofIPIVare set. - If
IPIV(k) > 0, then rows and columnskandIPIV(k)were interchanged andD(k,k)is a 1-by-1 diagonal block. - If
IPIV(k) < 0andIPIV(k+1) < 0, then rows and columnskand-IPIV(k)were interchanged and rows and columnsk+1and-IPIV(k+1)wereinerchaged(again, source spelling π),D(k:k+1,k:k+1)is a 2-by-2 diagonal block.
- Only the first
- If
BβCOMPLEX array, dimension (LDB,NRHS). On entry,BcontainsNRHSvectors of lengthN. On exit,Bis overwritten with the productA * B.LDBβINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).INFOβINTEGER.= 0: successful exit.< 0: ifINFO = -k, the k-th argument had an illegal value.
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 154 of file clavhe_rook.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
okay that's the whole page, bestie β LAPACK Version 3.12.0, page TESTING/LI...avhe_rook.f(3), and the footer isn't showing a date so I'm not inventing one ππβ¨
π¦ 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