her2k(3)
π her2k(3) β LAPACK π
okay so bestie, welcome to her2k(3), straight out of the LAPACK manual β the routine that handles the hermitian/symmetric rank-2k update π β¨ and honestly? she's serving. let's get into it.
π NAME π
- her2k β {he,sy}r2k: Hermitian/symmetric rank-2k update π
πΈ SYNOPSIS πΈ
π Functions π
subroutine cher2k (uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c,
ldc)
CHER2K
subroutine csyr2k (uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c,
ldc)
CSYR2K
subroutine dsyr2k (uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c,
ldc)
DSYR2K
subroutine ssyr2k (uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c,
ldc)
SSYR2K
subroutine zher2k (uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c,
ldc)
ZHER2K
subroutine zsyr2k (uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c,
ldc)
ZSYR2K
β¨ Detailed Description β¨
okay bestie, this section is lowkey empty in the original β there's literally nothing here, we just slide right on into the function docs π no thoughts, just subroutines.
π₯ Function Documentation π₯
π cher2k β CHER2K π
subroutine cher2k (character uplo, character trans, integer n, integer k,
complex alpha, complex, dimension(lda,*) a, integer lda, complex,
dimension(ldb,*) b, integer ldb, real beta, complex, dimension(ldc,*) c,
integer ldc)
π¦ Purpose π¦
CHER2K performs one of the hermitian rank 2k operations, which are giving:
C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C,
or
C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C,
where alpha and beta are scalars with beta being real, C is an n by n hermitian matrix, and A and B are n by k matrices in the first case and k by n matrices in the second case. periodt. π
π Parameters π
UPLOβCHARACTER*1. on entry,UPLOtells you whether we're referencing the upper or lower triangular part of the arrayC, like so:UPLO = 'U'or'u'β only the upper triangular part ofCgets referenced. πUPLO = 'L'or'l'β only the lower triangular part ofCgets referenced. π
TRANSβCHARACTER*1. on entry,TRANSpicks which operation is being performed:TRANS = 'N'or'n'β
C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C.
TRANS = 'C'or'c'β
C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C.
NβINTEGER. on entry,Nis the order of the matrixC.Nmust be at least zero β no negative vibes, bestie π ββοΈKβINTEGER. on entry withTRANS = 'N'or'n',Kis the number of columns of the matricesAandB; on entry withTRANS = 'C'or'c',Kis the number of rows of the matricesAandB.Kmust be at least zero.ALPHAβCOMPLEX. on entry,ALPHAis the scalar alpha. πΈAβCOMPLEXarray, dimension( LDA, ka ), wherekaiskwhenTRANS = 'N'or'n', and isnotherwise. before entry withTRANS = 'N'or'n', the leadingnbykpart of the arrayAmust contain the matrixA; otherwise the leadingkbynpart of the arrayAmust contain the matrixA.LDAβINTEGER. on entry,LDAis the first dimension ofAas declared in the calling (sub) program. whenTRANS = 'N'or'n',LDAmust be at leastmax( 1, n ); otherwiseLDAmust be at leastmax( 1, k ).BβCOMPLEXarray, dimension( LDB, kb ), wherekbiskwhenTRANS = 'N'or'n', and isnotherwise. before entry withTRANS = 'N'or'n', the leadingnbykpart of the arrayBmust contain the matrixB; otherwise the leadingkbynpart of the arrayBmust contain the matrixB.LDBβINTEGER. on entry,LDBis the first dimension ofBas declared in the calling (sub) program. whenTRANS = 'N'or'n',LDBmust be at leastmax( 1, n ); otherwiseLDBmust be at leastmax( 1, k ).BETAβREAL. on entry,BETAis the scalar beta. (and yes bestie,REALnotCOMPLEXβ that's the whole hermitian moment π )CβCOMPLEXarray, dimension( LDC, N ).- before entry with
UPLO = 'U'or'u', the leadingnbynupper triangular part of the arrayCmust contain the upper triangular part of the hermitian matrix, and the strictly lower triangular part ofCis not referenced. on exit, the upper triangular part of the arrayCis overwritten by the upper triangular part of the updated matrix. - before entry with
UPLO = 'L'or'l', the leadingnbynlower triangular part of the arrayCmust contain the lower triangular part of the hermitian matrix, and the strictly upper triangular part ofCis not referenced. on exit, the lower triangular part of the arrayCis overwritten by the lower triangular part of the updated matrix. - and note that the imaginary parts of the diagonal elements need not be set β they're assumed to be zero, and on exit they are set to zero. π (not scary, just pay attention bestie)
- before entry with
LDCβINTEGER. on entry,LDCis the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, n ).
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π¦ Further Details π¦
- Level 3 Blas routine.
- written on 8-February-1989:
- Jack Dongarra, Argonne National Laboratory.
- Iain Duff, AERE Harwell.
- Jeremy Du Croz, Numerical Algorithms Group Ltd.
- Sven Hammarling, Numerical Algorithms Group Ltd.
- modified 8-Nov-93 to set
C(J,J)toREAL( C(J,J) )whenBETA = 1:- Ed Anderson, Cray Research Inc.
Definition at line 196 of file cher2k.f.
π csyr2k β CSYR2K π
subroutine csyr2k (character uplo, character trans, integer n, integer k,
complex alpha, complex, dimension(lda,*) a, integer lda, complex,
dimension(ldb,*) b, integer ldb, complex beta, complex, dimension(ldc,*)
c, integer ldc)
π¦ Purpose π¦
CSYR2K performs one of the symmetric rank 2k operations, and they're giving:
C := alpha*A*B**T + alpha*B*A**T + beta*C,
or
C := alpha*A**T*B + alpha*B**T*A + beta*C,
where alpha and beta are scalars, C is an n by n symmetric matrix, and A and B are n by k matrices in the first case and k by n matrices in the second case. π
β¨
π Parameters π
UPLOβCHARACTER*1. on entry,UPLOsays whether we're referencing the upper or lower triangular part of the arrayC:UPLO = 'U'or'u'β only the upper triangular part ofCgets referenced. πUPLO = 'L'or'l'β only the lower triangular part ofCgets referenced. π
TRANSβCHARACTER*1. on entry,TRANSpicks which operation is being performed:TRANS = 'N'or'n'β
C := alpha*A*B**T + alpha*B*A**T + beta*C.
TRANS = 'T'or't'β
C := alpha*A**T*B + alpha*B**T*A + beta*C.
NβINTEGER. on entry,Nis the order of the matrixC.Nmust be at least zero.KβINTEGER. on entry withTRANS = 'N'or'n',Kis the number of columns of the matricesAandB; on entry withTRANS = 'T'or't',Kis the number of rows of the matricesAandB.Kmust be at least zero.ALPHAβCOMPLEX. on entry,ALPHAis the scalar alpha. πΈAβCOMPLEXarray, dimension( LDA, ka ), wherekaiskwhenTRANS = 'N'or'n', and isnotherwise. before entry withTRANS = 'N'or'n', the leadingnbykpart of the arrayAmust contain the matrixA; otherwise the leadingkbynpart of the arrayAmust contain the matrixA.LDAβINTEGER. on entry,LDAis the first dimension ofAas declared in the calling (sub) program. whenTRANS = 'N'or'n',LDAmust be at leastmax( 1, n ); otherwiseLDAmust be at leastmax( 1, k ).BβCOMPLEXarray, dimension( LDB, kb ), wherekbiskwhenTRANS = 'N'or'n', and isnotherwise. before entry withTRANS = 'N'or'n', the leadingnbykpart of the arrayBmust contain the matrixB; otherwise the leadingkbynpart of the arrayBmust contain the matrixB.LDBβINTEGER. on entry,LDBis the first dimension ofBas declared in the calling (sub) program. whenTRANS = 'N'or'n',LDBmust be at leastmax( 1, n ); otherwiseLDBmust be at leastmax( 1, k ).BETAβCOMPLEX. on entry,BETAis the scalar beta. (and here it'sCOMPLEXβ different from CHER2K, don't get it twisted π )CβCβCOMPLEXarray, dimension( LDC, N ). Before entry, withUPLO = 'U'or'u', the leadingnbynupper triangular part of the arrayCmust contain the upper triangular part of the symmetric matrix, and the strictly lower triangular part ofCis not referenced at all. On exit, the upper triangular part of the arrayCis overwritten by the upper triangular part of the updated matrix. Before entry withUPLO = 'L'or'l', the leadingnbynlower triangular part of the arrayCmust contain the lower triangular part of the symmetric matrix, and the strictly upper triangular part ofCis not referenced. On exit, the lower triangular part of the arrayCis overwritten by the lower triangular part of the updated matrix. Bestie, only half of it is your problem and it tells you which half. πLDCβINTEGER. On entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, n ). Respect the stride, or the whole thing goes sideways.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
β¨ Further Details:
Level 3 Blas routine.
-- Written on 8-February-1989.
Jack Dongarra, Argonne National Laboratory.
Iain Duff, AERE Harwell.
Jeremy Du Croz, Numerical Algorithms Group Ltd.
Sven Hammarling, Numerical Algorithms Group Ltd.
Definition at line 187 of file csyr2k.f.
π¦ subroutine dsyr2k
subroutine dsyr2k (character uplo, character trans, integer n, integer k,
double precision alpha, double precision, dimension(lda,*) a, integer
lda, double precision, dimension(ldb,*) b, integer ldb, double precision
beta, double precision, dimension(ldc,*) c, integer ldc)
DSYR2K β the double precision twin. Same energy, more decimal places. π
Purpose:
DSYR2K performs one of the symmetric rank 2k operations
C := alpha*A*B**T + alpha*B*A**T + beta*C,
or
C := alpha*A**T*B + alpha*B**T*A + beta*C,
where alpha and beta are scalars, C is an n by n symmetric matrix and A and B are n by k matrices in the first case and k by n matrices in the second case. Two whole updates, one call. Ate. π₯
Parameters
UPLOβCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the arrayCis to be referenced as follows:UPLO = 'U'or'u'β Only the upper triangular part ofCis to be referenced.UPLO = 'L'or'l'β Only the lower triangular part ofCis to be referenced.
TRANSβCHARACTER*1. On entry,TRANSspecifies the operation to be performed as follows:TRANS = 'N'or'n'βC := alpha*A*B**T + alpha*B*A**T + beta*C.TRANS = 'T'or't'βC := alpha*A**T*B + alpha*B**T*A + beta*C.TRANS = 'C'or'c'βC := alpha*A**T*B + alpha*B**T*A + beta*C.
NβINTEGER. On entry,Nspecifies the order of the matrixC.Nmust be at least zero.KβINTEGER. On entry withTRANS = 'N'or'n',Kspecifies the number of columns of the matricesAandB, and on entry withTRANS = 'T'or't'or'C'or'c',Kspecifies the number of rows of the matricesAandB.Kmust be at least zero. It literally flips meaning depending onTRANS, so read theTRANSyou actually passed. iykyk.ALPHAβDOUBLE PRECISION. On entry,ALPHAspecifies the scalar alpha.AβDOUBLE PRECISIONarray, dimension( LDA, ka ), wherekaiskwhenTRANS = 'N'or'n', and isnotherwise. Before entry withTRANS = 'N'or'n', the leadingnbykpart of the arrayAmust contain the matrixA, otherwise the leadingkbynpart of the arrayAmust contain the matrixA.LDAβINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. WhenTRANS = 'N'or'n'thenLDAmust be at leastmax( 1, n ), otherwiseLDAmust be at leastmax( 1, k ).BβDOUBLE PRECISIONarray, dimension( LDB, kb ), wherekbiskwhenTRANS = 'N'or'n', and isnotherwise. Before entry withTRANS = 'N'or'n', the leadingnbykpart of the arrayBmust contain the matrixB, otherwise the leadingkbynpart of the arrayBmust contain the matrixB.LDBβINTEGER. On entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program. WhenTRANS = 'N'or'n'thenLDBmust be at leastmax( 1, n ), otherwiseLDBmust be at leastmax( 1, k ).BETAβDOUBLE PRECISION. On entry,BETAspecifies the scalar beta.CβDOUBLE PRECISIONarray, dimension( LDC, N ). Before entry withUPLO = 'U'or'u', the leadingnbynupper triangular part of the arrayCmust contain the upper triangular part of the symmetric matrix and the strictly lower triangular part ofCis not referenced. On exit, the upper triangular part of the arrayCis overwritten by the upper triangular part of the updated matrix. Before entry withUPLO = 'L'or'l', the leadingnbynlower triangular part of the arrayCmust contain the lower triangular part of the symmetric matrix and the strictly upper triangular part ofCis not referenced. On exit, the lower triangular part of the arrayCis overwritten by the lower triangular part of the updated matrix.LDCβINTEGER. On entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, n ).
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
β¨ Further Details:
Level 3 Blas routine.
-- Written on 8-February-1989.
Jack Dongarra, Argonne National Laboratory.
Iain Duff, AERE Harwell.
Jeremy Du Croz, Numerical Algorithms Group Ltd.
Sven Hammarling, Numerical Algorithms Group Ltd.
Definition at line 191 of file dsyr2k.f.
π§ subroutine ssyr2k
subroutine ssyr2k (character uplo, character trans, integer n, integer k,
real alpha, real, dimension(lda,*) a, integer lda, real,
dimension(ldb,*) b, integer ldb, real beta, real, dimension(ldc,*) c,
integer ldc)
SSYR2K β single precision edition, same plot, fewer bits. π
Purpose:
SSYR2K performs one of the symmetric rank 2k operations
C := alpha*A*B**T + alpha*B*A**T + beta*C,
or
C := alpha*A**T*B + alpha*B**T*A + beta*C,
where alpha and beta are scalars, C is an n by n symmetric matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.
Parameters
UPLOβCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the arrayCis to be referenced as follows:UPLO = 'U'or'u'β Only the upper triangular part ofCis to be referenced.UPLO = 'L'or'l'β Only the lower triangular part ofCis to be referenced.
TRANSβCHARACTER*1. On entry,TRANSspecifies the operation to be performed as follows:TRANS = 'N'or'n'βC := alpha*A*B**T + alpha*B*A**T + beta*C.TRANS = 'T'or't'βC := alpha*A**T*B + alpha*B**T*A + beta*C.TRANS = 'C'or'c'βC := alpha*A**T*B + alpha*B**T*A + beta*C.
NβINTEGER. On entry,Nspecifies the order of the matrixC.Nmust be at least zero.KβINTEGER. On entry withTRANS = 'N'or'n',Kspecifies the number of columns of the matricesAandB, and on entry withTRANS = 'T'or't'or'C'or'c',Kspecifies the number of rows of the matricesAandB.Kmust be at least zero.ALPHAβREAL. On entry,ALPHAspecifies the scalar alpha.AβREALarray, dimension( LDA, ka ), wherekaiskwhenTRANS = 'N'or'n', and isnotherwise. Before entry withTRANS = 'N'or'n', the leadingnbykpart of the arrayAmust contain the matrixA, otherwise the leadingkbynpart of the arrayAmust contain the matrixA.LDAβINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. WhenTRANS = 'N'or'n'thenLDAmust be at leastmax( 1, n ), otherwiseLDAmust be at leastmax( 1, k ).BβREALarray, dimension( LDB, kb ), wherekbiskwhenTRANS = 'N'or'n', and isnotherwise. Before entry withTRANS = 'N'or'n', the leadingnbykpart of the arrayBmust contain the matrixB, otherwise the leadingkbynpart of the arrayBmust contain the matrixB.LDBLDBβINTEGER, obvi. On entry,LDBis the first dimension ofBas declared in the calling (sub) program. WhenTRANS = 'N'or'n'thenLDBmust be at leastmax( 1, n ), otherwiseLDBmust be at leastmax( 1, k ). Math is mathing. πBETAβBETAisREAL. On entry,BETAspecifies the scalar beta. That's it, that's the whole girl. πCβCis aREALarray, dimension( LDC, N ).- Before entry with
UPLO = 'U'or'u', the leading n by n upper triangular part of the arrayCmust contain the upper triangular part of the symmetric matrix, and the strictly lower triangular part ofCis not referenced β not even a glance, bestie, it's giving invisible. On exit, the upper triangular part of the arrayCis overwritten by the upper triangular part of the updated matrix. β¨ - Before entry with
UPLO = 'L'or'l', the leading n by n lower triangular part of the arrayCmust contain the lower triangular part of the symmetric matrix, and the strictly upper triangular part ofCis not referenced. On exit, the lower triangular part of the arrayCis overwritten by the lower triangular part of the updated matrix. π¦
- Before entry with
LDCβINTEGER. On entry,LDCis the first dimension ofCas declared in the calling (sub) program, andLDCmust be at leastmax( 1, n ). No skipping this one, fr fr. πΈ
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details
- Level 3 Blas routine.
-- Written on 8-February-1989.- Jack Dongarra, Argonne National Laboratory.
- Iain Duff, AERE Harwell.
- Jeremy Du Croz, Numerical Algorithms Group Ltd.
- Sven Hammarling, Numerical Algorithms Group Ltd.
Definition at line 191 of file ssyr2k.f.
π subroutine zher2k β the complex hermitian one, main character energy π
subroutine zher2k (character uplo, character trans, integer n, integer k,
complex*16 alpha, complex*16, dimension(lda,*) a, integer lda,
complex*16, dimension(ldb,*) b, integer ldb, double precision beta,
complex*16, dimension(ldc,*) c, integer ldc)
ZHER2K π
Purpose
ZHER2K performs one of the hermitian rank 2k operations:
C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C,
or
C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C,
where alpha and beta are scalars with beta real, C is an n by n hermitian matrix and A and B are n by k matrices in the first case and k by n matrices in the second case. Two flavours, pick your fighter. π₯
Parameters
UPLOβUPLOisCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the arrayCis to be referenced as follows:UPLO = 'U'or'u'β Only the upper triangular part ofCis to be referenced.UPLO = 'L'or'l'β Only the lower triangular part ofCis to be referenced.
TRANSβTRANSisCHARACTER*1. On entry,TRANSspecifies the operation to be performed as follows:TRANS = 'N'or'n'βC := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C.TRANS = 'C'or'c'βC := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C.
NβNisINTEGER. On entry,Nspecifies the order of the matrixC.Nmust be at least zero. Ground floor, no negatives. π«KβKisINTEGER. On entry withTRANS = 'N'or'n',Kspecifies the number of columns of the matricesAandB, and on entry withTRANS = 'C'or'c',Kspecifies the number of rows of the matricesAandB.Kmust be at least zero. πALPHAβALPHAisCOMPLEX*16. On entry,ALPHAspecifies the scalar alpha. Simple as that.AβAisCOMPLEX*16array, dimension( LDA, ka ), wherekaiskwhenTRANS = 'N'or'n', and isnotherwise. Before entry withTRANS = 'N'or'n', the leading n by k part of the arrayAmust contain the matrixA, otherwise the leading k by n part of the arrayAmust contain the matrixA. It shape-shifts, lowkey iconic. π¦LDAβLDAisINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. WhenTRANS = 'N'or'n'thenLDAmust be at leastmax( 1, n ), otherwiseLDAmust be at leastmax( 1, k ).BβBisCOMPLEX*16array, dimension( LDB, kb ), wherekbiskwhenTRANS = 'N'or'n', and isnotherwise. Before entry withTRANS = 'N'or'n', the leading n by k part of the arrayBmust contain the matrixB, otherwise the leading k by n part of the arrayBmust contain the matrixB. Same energy asA, different letter. πLDBβLDBisINTEGER. On entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program. WhenTRANS = 'N'or'n'thenLDBmust be at leastmax( 1, n ), otherwiseLDBmust be at leastmax( 1, k ). Unchanged on exit.BETAβBETAisDOUBLE PRECISION. On entry,BETAspecifies the scalar beta. Note bestie:betais real here even though everything else is complex β that's the hermitian thing, it's giving balance. βοΈCβCisCOMPLEX*16array, dimension( LDC, N ).- Before entry with
UPLO = 'U'or'u', the leading n by n upper triangular part of the arrayCmust contain the upper triangular part of the hermitian matrix and the strictly lower triangular part ofCis not referenced. On exit, the upper triangular part of the arrayCis overwritten by the upper triangular part of the updated matrix. - Before entry with
UPLO = 'L'or'l', the leading n by n lower triangular part of the arrayCmust contain the lower triangular part of the hermitian matrix and the strictly upper triangular part ofCis not referenced. On exit, the lower triangular part of the arrayCis overwritten by the lower triangular part of the updated matrix. - Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero. Not me fixing your diagonal for you, but yes, that's literally what's happening. π
- Before entry with
LDCβLDCisINTEGER. On entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, n ).
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details
- Level 3 Blas routine.
-- Written on 8-February-1989.- Jack Dongarra, Argonne National Laboratory.
- Iain Duff, AERE Harwell.
- Jeremy Du Croz, Numerical Algorithms Group Ltd.
- Sven Hammarling, Numerical Algorithms Group Ltd.
-- Modified 8-Nov-93 to set C(J,J) to DBLE( C(J,J) ) when BETA = 1.- Ed Anderson, Cray Research Inc.
Definition at line 197 of file zher2k.f.
πΈ subroutine zsyr2k β the complex symmetric sibling, she's here π
subroutine zsyr2k (character uplo, character trans, integer n, integer k,
complex*16 alpha, complex*16, dimension(lda,*) a, integer lda,
complex*16, dimension(ldb,*) b, integer ldb, complex*16 beta,
complex*16, dimension(ldc,*) c, integer ldc)
ZSYR2K π
Purpose
ZSYR2K performs one of the symmetric rank 2k operations:
C := alpha*A*B**T + alpha*B*A**T + beta*C,
or
C := alpha*A**T*B + alpha*B**T*A + beta*C,
where alpha and beta are scalars, C is an n by n symmetric matrix and A and B are n by k matrices in the first case and k by n matrices in the second case. No conjugate here, just a plain transpose β different girl, same slay. β¨
Parameters
UPLOβUPLOisCHARACTER*1. On entry,UPLOspecifies whether the upper or lower triangular part of the arrayCis to be referenced as follows:UPLO = 'U'or'u'β Only the upper triangular part ofCis to be referenced.UPLO = 'L'or'l'β Only the lower triangular part ofCis to be referenced.
TRANSβTRANSisCHARACTER*1. On entry,TRANSspecifies the operation to be performed as follows:TRANS = 'N'or'n'βC := alpha*A*B**T + alpha*B*A**T + beta*C.TRANS = 'T'or't'βC := alpha*A**T*B + alpha*B**T*A + beta*C.
Heads up: this one takes'T'or't', not'C'or'c'. Read the letters, bestie, iykyk. π«Ά
NβNisINTEGER. On entry,Nspecifies the order of the matrixC.Nmust be at least zero.KβKisINTEGER. On entry withTRANS = 'N'or'n',Kspecifies the number of columns of the matricesAandB, and on entry withTRANS = 'T'or't',Kspecifies the number of rows of the matricesAandB.Kmust be at least zero.ALPHAβALPHAisCOMPLEX*16. On entry,ALPHAspecifies the scalar alpha.AβAisCOMPLEX*16array, dimension( LDA, ka ), wherekaiskwhenTRANS = 'N'or'n', and isnotherwise. Before entry withTRANS = 'N'or'n', the leading n by k part of the arrayAmust contain the matrixA, otherwise the leading k by n part of the arrayAmust contain the matrixA.LDAβLDAisINTEGER. On entry,LDAspecifies the first dimension ofAas declared in the calling (sub) program. WhenTRANS = 'N'or'n'thenLDAmust be at leastmax( 1, n ), otherwiseLDAmust be at leastmax( 1, k ).BβBβ okay bestie, soBis aCOMPLEX*16array with dimension( LDB, kb ), wherekbiskwhenTRANS = 'N'or'n', and isnotherwise. Before entry withTRANS = 'N'or'n', the leadingnbykpart of the arrayBmust contain the matrixB; otherwise the leadingkbynpart of the arrayBmust contain the matrixB. No cap. πLDBβLDBis anINTEGER. On entry,LDBspecifies the first dimension ofBas declared in the calling (sub) program. WhenTRANS = 'N'or'n', thenLDBmust be at leastmax( 1, n ); otherwiseLDBmust be at leastmax( 1, k ). β¨BETAβBETAis aCOMPLEX*16. On entry,BETAspecifies the scalar beta. That's it, that's the tea. πCβCis aCOMPLEX*16array, dimension( LDC, N ). Before entry withUPLO = 'U'or'u', the leadingnbynupper triangular part of the arrayCmust contain the upper triangular part of the symmetric matrix, and the strictly lower triangular part ofCis not referenced. On exit, the upper triangular part of the arrayCis overwritten by the upper triangular part of the updated matrix. Before entry withUPLO = 'L'or'l', the leadingnbynlower triangular part of the arrayCmust contain the lower triangular part of the symmetric matrix, and the strictly upper triangular part ofCis not referenced. On exit, the lower triangular part of the arrayCis overwritten by the lower triangular part of the updated matrix. π¦LDCβLDCis anINTEGER. On entry,LDCspecifies the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, n ). πΈ
Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details: π
Level 3 Blas routine.
-- Written on 8-February-1989.
Jack Dongarra, Argonne National Laboratory.
Iain Duff, AERE Harwell.
Jeremy Du Croz, Numerical Algorithms Group Ltd.
Sven Hammarling, Numerical Algorithms Group Ltd.
Definition at line 187 of file zsyr2k.f.
Author
Generated automatically by Doxygen for LAPACK from the source code.
π That's the whole page, bestie! This masterpiece is from LAPACK version 3.12.0, and it was generated on Tue Nov 28 2023 12:08:43. Stay slaying! π«Άβ¨
π¦ where this page comes from
- centos-stream 10: lapack 3.12.0-7.el10 Β· BSD-3-Clause-Open-MPI
- fedora 43: lapack 3.12.0-10.fc43 Β· BSD-3-Clause-Open-MPI
- fedora 43: lapack 3.12.0-10.fc43 Β· BSD-3-Clause-Open-MPI
- fedora 44: lapack 3.12.0-11.fc44 Β· BSD-3-Clause-Open-MPI
- fedora 44: lapack 3.12.0-11.fc44 Β· BSD-3-Clause-Open-MPI
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms