table of contents
her2k(3) | Library Functions Manual | her2k(3) |
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¶
Function Documentation¶
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)¶
CHER2K
Purpose:
!> !> CHER2K 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. !>
Parameters
!> 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*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
!> 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 matrices A and B, and on entry with !> TRANS = 'C' or 'c', K specifies the number of rows of the !> matrices A and B. 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 ). !>
B
!> B is COMPLEX array, dimension ( LDB, kb ), where kb 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 B must contain the matrix B, otherwise !> the leading k by n part of the array B must contain the !> matrix B. !>
LDB
!> LDB is INTEGER !> On entry, LDB specifies the first dimension of B as declared !> in the calling (sub) program. When TRANS = 'N' or 'n' !> then LDB must be at least max( 1, n ), otherwise LDB 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 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. !>
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 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 196 of file cher2k.f.
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)¶
CSYR2K
Purpose:
!> !> CSYR2K 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 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*B**T + alpha*B*A**T + !> beta*C. !> !> TRANS = 'T' or 't' C := alpha*A**T*B + alpha*B**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 matrices A and B, and on entry with !> TRANS = 'T' or 't', K specifies the number of rows of the !> matrices A and B. 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 ). !>
B
!> B is COMPLEX array, dimension ( LDB, kb ), where kb 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 B must contain the matrix B, otherwise !> the leading k by n part of the array B must contain the !> matrix B. !>
LDB
!> LDB is INTEGER !> On entry, LDB specifies the first dimension of B as declared !> in the calling (sub) program. When TRANS = 'N' or 'n' !> then LDB must be at least max( 1, n ), otherwise LDB 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 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 (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
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. !>
Parameters
!> 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*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
!> 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 matrices A and B, and on entry with !> TRANS = 'T' or 't' or 'C' or 'c', K specifies the number !> of rows of the matrices A and B. K must be at least zero. !>
ALPHA
!> ALPHA is DOUBLE PRECISION. !> On entry, ALPHA specifies the scalar alpha. !>
A
!> A is DOUBLE PRECISION 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 ). !>
B
!> B is DOUBLE PRECISION array, dimension ( LDB, kb ), where kb 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 B must contain the matrix B, otherwise !> the leading k by n part of the array B must contain the !> matrix B. !>
LDB
!> LDB is INTEGER !> On entry, LDB specifies the first dimension of B as declared !> in the calling (sub) program. When TRANS = 'N' or 'n' !> then LDB must be at least max( 1, n ), otherwise LDB must !> be at least max( 1, k ). !>
BETA
!> BETA is DOUBLE PRECISION. !> On entry, BETA specifies the scalar beta. !>
C
!> C is DOUBLE PRECISION 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 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 (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
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 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*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
!> 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 matrices A and B, and on entry with !> TRANS = 'T' or 't' or 'C' or 'c', K specifies the number !> of rows of the matrices A and B. K must be at least zero. !>
ALPHA
!> ALPHA is REAL !> On entry, ALPHA specifies the scalar alpha. !>
A
!> A is REAL 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 ). !>
B
!> B is REAL array, dimension ( LDB, kb ), where kb 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 B must contain the matrix B, otherwise !> the leading k by n part of the array B must contain the !> matrix B. !>
LDB
!> LDB is INTEGER !> On entry, LDB specifies the first dimension of B as declared !> in the calling (sub) program. When TRANS = 'N' or 'n' !> then LDB must be at least max( 1, n ), otherwise LDB must !> be at least max( 1, k ). !>
BETA
!> BETA is REAL !> On entry, BETA specifies the scalar beta. !>
C
!> C is REAL 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 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 (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. !>
Parameters
!> 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*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
!> 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 matrices A and B, and on entry with !> TRANS = 'C' or 'c', K specifies the number of rows of the !> matrices A and B. K must be at least zero. !>
ALPHA
!> ALPHA is COMPLEX*16 . !> On entry, ALPHA specifies the scalar alpha. !>
A
!> A is COMPLEX*16 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 ). !>
B
!> B is COMPLEX*16 array, dimension ( LDB, kb ), where kb 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 B must contain the matrix B, otherwise !> the leading k by n part of the array B must contain the !> matrix B. !>
LDB
!> LDB is INTEGER !> On entry, LDB specifies the first dimension of B as declared !> in the calling (sub) program. When TRANS = 'N' or 'n' !> then LDB must be at least max( 1, n ), otherwise LDB must !> be at least max( 1, k ). !> Unchanged on exit. !>
BETA
!> BETA is DOUBLE PRECISION . !> On entry, BETA specifies the scalar beta. !>
C
!> C is COMPLEX*16 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 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. !>
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 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 (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. !>
Parameters
!> 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*B**T + alpha*B*A**T + !> beta*C. !> !> TRANS = 'T' or 't' C := alpha*A**T*B + alpha*B**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 matrices A and B, and on entry with !> TRANS = 'T' or 't', K specifies the number of rows of the !> matrices A and B. K must be at least zero. !>
ALPHA
!> ALPHA is COMPLEX*16 !> On entry, ALPHA specifies the scalar alpha. !>
A
!> A is COMPLEX*16 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 ). !>
B
!> B is COMPLEX*16 array, dimension ( LDB, kb ), where kb 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 B must contain the matrix B, otherwise !> the leading k by n part of the array B must contain the !> matrix B. !>
LDB
!> LDB is INTEGER !> On entry, LDB specifies the first dimension of B as declared !> in the calling (sub) program. When TRANS = 'N' or 'n' !> then LDB must be at least max( 1, n ), otherwise LDB must !> be at least max( 1, k ). !>
BETA
!> BETA is COMPLEX*16 !> On entry, BETA specifies the scalar beta. !>
C
!> C is COMPLEX*16 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 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.
Version 3.12.0 | LAPACK |