herk(3)
π herk(3) β LAPACK π
okay so bestie, welcome to herk β¨ this is the LAPACK page for the {he,sy}rk family β "Hermitian/symmetric rank-k update" β and honestly? it's giving foundational. six routines, one job: smash out a rank-k update on your matrix and look cute doing it. no cap. let's get into it π
π NAME π
herk - {he,sy}rk: Hermitian/symmetric rank-k update
β¨ SYNOPSIS β¨
π«Ά Functions π«Ά
subroutine cherk (uplo, trans, n, k, alpha, a, lda, beta, c, ldc)β CHERKsubroutine csyrk (uplo, trans, n, k, alpha, a, lda, beta, c, ldc)β CSYRKsubroutine dsyrk (uplo, trans, n, k, alpha, a, lda, beta, c, ldc)β DSYRKsubroutine ssyrk (uplo, trans, n, k, alpha, a, lda, beta, c, ldc)β SSYRKsubroutine zherk (uplo, trans, n, k, alpha, a, lda, beta, c, ldc)β ZHERKsubroutine zsyrk (uplo, trans, n, k, alpha, a, lda, beta, c, ldc)β ZSYRK
π¦ Detailed Description π¦
(this section is a vibe β the real tea is all in the Function Documentation below π)
πΈ Function Documentation πΈ
π subroutine cherk (character uplo, character trans, integer n, integer k, real alpha, complex, dimension(lda,) a, integer lda, real beta, complex, dimension(ldc,) c, integer ldc) π
CHERK
Purpose:
CHERK performs one of the hermitian rank k operations
C := alpha*A*A**H + beta*C,
or
C := alpha*A**H*A + beta*C,
where alpha and beta are real scalars, C is an n by n hermitian matrix and A is an n by k matrix in the first case and a k by n matrix in the second case. periodt. π
Parameters
UPLO
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = 'U' or 'u' Only the upper triangular part of C
is to be referenced.
UPLO = 'L' or 'l' Only the lower triangular part of C
is to be referenced.
TRANS
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = 'N' or 'n' C := alpha*A*A**H + beta*C.
TRANS = 'C' or 'c' C := alpha*A**H*A + beta*C.
N
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K
K is INTEGER On entry with TRANS = 'N' or 'n', K specifies the number of columns of the matrix A, and on entry with TRANS = 'C' or 'c', K specifies the number of rows of the matrix A. K must be at least zero.
ALPHA
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
A
A is COMPLEX array, dimension ( LDA, ka ), where ka is k when TRANS = 'N' or 'n', and is n otherwise. Before entry with TRANS = 'N' or 'n', the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A. π
LDA
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = 'N' or 'n' then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
BETA
BETA is REAL On entry, BETA specifies the scalar beta.
C
C is COMPLEX array, dimension ( LDC, N ) Before entry with UPLO = 'U' or 'u', the leading n by n upper triangular part of the array C must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is 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 array C must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.
Note: 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. π
LDC
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 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 REAL( C(J,J) ) when BETA = 1.
Ed Anderson, Cray Research Inc.
Definition at line 172 of file cherk.f.
π subroutine csyrk (character uplo, character trans, integer n, integer k, complex alpha, complex, dimension(lda,) a, integer lda, complex beta, complex, dimension(ldc,) c, integer ldc) π
CSYRK
Purpose:
CSYRK performs one of the symmetric rank k operations
C := alpha*A*A**T + beta*C,
or
C := alpha*A**T*A + beta*C,
where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case. slay. β¨
Parameters
UPLO
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = 'U' or 'u' Only the upper triangular part of C
is to be referenced.
UPLO = 'L' or 'l' Only the lower triangular part of C
is to be referenced.
TRANS
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = 'N' or 'n' C := alpha*A*A**T + beta*C.
TRANS = 'T' or 't' C := alpha*A**T*A + beta*C.
N
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K
K is INTEGER On entry with TRANS = 'N' or 'n', K specifies the number of columns of the matrix A, and on entry with TRANS = 'T' or 't', K specifies the number of rows of the matrix A. K must be at least zero.
ALPHA
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
A
A is COMPLEX array, dimension ( LDA, ka ), where ka is k when TRANS = 'N' or 'n', and is n otherwise. Before entry with TRANS = 'N' or 'n', the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A. π
LDA
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = 'N' or 'n' then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
BETA
BETA is COMPLEX On entry, BETA specifies the scalar beta.
C
C is COMPLEX array, dimension ( LDC, N ) Before entry with UPLO = 'U' or 'u', the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is 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 array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.
LDC
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 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 166 of file csyrk.f.
π subroutine dsyrk (character uplo, character trans, integer n, integer k, double precision alpha, double precision, dimension(lda,) a, integer lda, double precision beta, double precision, dimension(ldc,) c, integer ldc) π
DSYRK
Purpose:
DSYRK performs one of the symmetric rank k operations
C := alpha*A*A**T + beta*C,
or
C := alpha*A**T*A + beta*C,
where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case. (same energy as csyrk but make it double precision π )
Parameters
UPLO
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = 'U' or 'u' Only the upper triangular part of C
is to be referenced.
UPLO = 'L'or'l'β Only the lower triangular part ofCgets referenced, bestie. The upper part? Not invited. πTRANSβTRANSisCHARACTER*1. When you call this,TRANStells us which operation to do:TRANS = 'N'or'n'βC := alpha*A*A**T + beta*C.TRANS = 'T'or't'βC := alpha*A**T*A + beta*C.TRANS = 'C'or'c'βC := alpha*A**T*A + beta*C.
NβNisINTEGER. On entry,Nis the order of the matrixC. It has to be at least zero. No negative vibes allowed. β¨KβKisINTEGER. WhenTRANS = 'N'or'n',Kis the number of columns of matrixA. WhenTRANS = 'T'or't'or'C'or'c',Kis the number of rows of matrixA. AndKmust be at least zero. Zero is fine, negative is a no. πALPHAβALPHAisDOUBLE PRECISION. On entry,ALPHAis the scalaralpha. It's literally just a number you pick. πAβAis aDOUBLE PRECISIONarray, dimension (LDA,ka).kaiskwhenTRANS = 'N'or'n', andnotherwise. Before you call withTRANS = 'N'or'n', the leadingnbykpart ofAmust contain the matrixA. Otherwise, the leadingkbynpart ofAmust contain the matrixA. So fill it in correctly, bestie. πLDAβLDAisINTEGER. On entry,LDAis the first dimension ofAas declared in the calling (sub) program. WhenTRANS = 'N'or'n',LDAmust be at leastmax( 1, n ). Otherwise, it must be at leastmax( 1, k ). Respect the bounds, queen. πBETAβBETAisDOUBLE PRECISION. On entry,BETAis the scalarbeta. Another number, another slay. πCβCis aDOUBLE PRECISIONarray, dimension (LDC,N). Before entry withUPLO = 'U'or'u', the leadingnbynupper triangular part ofCmust contain the upper triangular part of the symmetric matrix. The strictly lower triangular part ofCis not referenced. On exit, the upper triangular part ofCis overwritten by the upper triangular part of the updated matrix. Before entry withUPLO = 'L'or'l', the leadingnbynlower triangular part ofCmust contain the lower triangular part of the symmetric matrix. The strictly upper triangular part ofCis not referenced. On exit, the lower triangular part ofCis overwritten by the lower triangular part of the updated matrix. Only one triangle gets touched, the other is a ghost. π»LDCβLDCisINTEGER. On entry,LDCis the first dimension ofCas declared in the calling (sub) program.LDCmust be at leastmax( 1, n ). Don't forget this one. π±
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 168 of file dsyrk.f.
πΈ subroutine ssyrk πΈ
subroutine ssyrk (character uplo, character trans, integer n, integer k,
real alpha, real, dimension(lda,*) a, integer lda, real beta, real,
dimension(ldc,*) c, integer ldc)
SSYRK
Purpose:
SSYRK performs one of the symmetric rank k operations
C := alpha*A*A**T + beta*C,
or
C := alpha*A**T*A + beta*C,
where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case. It's giving linear algebra realness. π
Parameters
UPLOβUPLOisCHARACTER*1. On entry,UPLOtells you whether the upper or lower triangular part of the arrayCis referenced: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*A**T + beta*C.TRANS = 'T'or't'βC := alpha*A**T*A + beta*C.TRANS = 'C'or'c'βC := alpha*A**T*A + beta*C.
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 matrixA, and on entry withTRANS = 'T'or't'or'C'or'c',Kspecifies the number of rows of the matrixA.Kmust be at least zero. πALPHAβALPHAisREAL. On entry,ALPHAspecifies the scalaralpha. πAβAisREALarray, 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β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 ). πBETAβBETAisREAL. On entry,BETAspecifies the scalarbeta. πCβCisREALarray, 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β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.
Definition at line 168 of file ssyrk.f.
π subroutine zherk π
subroutine zherk (character uplo, character trans, integer n, integer k,
double precision alpha, complex*16, dimension(lda,*) a, integer lda,
double precision beta, complex*16, dimension(ldc,*) c, integer ldc)
ZHERK
Purpose:
ZHERK performs one of the hermitian rank k operations
C := alpha*A*A**H + beta*C,
or
C := alpha*A**H*A + beta*C,
where alpha and beta are real scalars, C is an n by n hermitian matrix and A is an n by k matrix in the first case and a k by n matrix in the second case. Hermitian, not symmetric, okay? Know the difference. π
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*A**H + beta*C.TRANS = 'C'or'c'βC := alpha*A**H*A + beta*C.
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 matrixA, and on entry withTRANS = 'C'or'c',Kspecifies the number of rows of the matrixA.Kmust be at least zero. πALPHAβALPHAisDOUBLE PRECISION .On entry,ALPHAspecifies the scalaralpha. πAβAisCOMPLEX*16array, 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β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 ). πBETABETAβBETAisDOUBLE PRECISION. On entry,BETAspecifies the scalar beta. πCβCisCOMPLEX*16 array, 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. π - 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. No cap, thatβs just the vibe. π«Ά
- 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 172 of file zherk.f.
β¨ subroutine zsyrk β¨
subroutine zsyrk (character uplo, character trans, integer n, integer k,
complex*16 alpha, complex*16, dimension(lda,*) a, integer lda,
complex*16 beta, complex*16, dimension(ldc,*) c, integer ldc)
ZSYRK π
π― Purpose π―
ZSYRK performs one of the symmetric rank k operations
C := alpha*A*A**T + beta*C,
or
C := alpha*A**T*A + beta*C,
where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case. π«
π 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*A**T + beta*C.TRANS = 'T'or't'C := alpha*A**T*A + beta*C.
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 matrixA, and on entry withTRANS = 'T'or't',Kspecifies the number of rows of the matrixA.Kmust be at least zero. β¨ALPHAβALPHAisCOMPLEX*16. On entry,ALPHAspecifies the scalar alpha. πAβAisCOMPLEX*16 array, 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β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 ). π₯BETAβBETAisCOMPLEX*16. On entry,BETAspecifies the scalar beta. πCβCisCOMPLEX*16 array, 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β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.
π Definition at line 166 of file zsyrk.f.
Author π
Generated automatically by Doxygen for LAPACK from the source code. β¨
π Thatβs a wrap, bestie! Version3.12.0, datedTue Nov 28 2023 12:08:43, forherk(3). Stay iconic! π β¨
π¦ 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