.TH "hemm" 3 "Wed Feb 7 2024 11:30:40" "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME hemm \- {he,sy}mm: Hermitian/symmetric matrix-matrix multiply .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "subroutine \fBchemm\fP (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)" .br .RI "\fBCHEMM\fP " .ti -1c .RI "subroutine \fBcsymm\fP (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)" .br .RI "\fBCSYMM\fP " .ti -1c .RI "subroutine \fBdsymm\fP (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)" .br .RI "\fBDSYMM\fP " .ti -1c .RI "subroutine \fBssymm\fP (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)" .br .RI "\fBSSYMM\fP " .ti -1c .RI "subroutine \fBzhemm\fP (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)" .br .RI "\fBZHEMM\fP " .ti -1c .RI "subroutine \fBzsymm\fP (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)" .br .RI "\fBZSYMM\fP " .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "subroutine chemm (character side, character uplo, integer m, integer n, complex alpha, complex, dimension(lda,*) a, integer lda, complex, dimension(ldb,*) b, integer ldb, complex beta, complex, dimension(ldc,*) c, integer ldc)" .PP \fBCHEMM\fP .PP \fBPurpose:\fP .RS 4 .PP .nf CHEMM performs one of the matrix-matrix operations C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, where alpha and beta are scalars, A is an hermitian matrix and B and C are m by n matrices\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fISIDE\fP .PP .nf SIDE is CHARACTER*1 On entry, SIDE specifies whether the hermitian matrix A appears on the left or right in the operation as follows: SIDE = 'L' or 'l' C := alpha*A*B + beta*C, SIDE = 'R' or 'r' C := alpha*B*A + beta*C, .fi .PP .br \fIUPLO\fP .PP .nf UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the hermitian matrix A is to be referenced as follows: UPLO = 'U' or 'u' Only the upper triangular part of the hermitian matrix is to be referenced\&. UPLO = 'L' or 'l' Only the lower triangular part of the hermitian matrix is to be referenced\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER On entry, M specifies the number of rows of the matrix C\&. M must be at least zero\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER On entry, N specifies the number of columns of the matrix C\&. N must be at least zero\&. .fi .PP .br \fIALPHA\fP .PP .nf ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha\&. .fi .PP .br \fIA\fP .PP .nf A is COMPLEX array, dimension ( LDA, ka ), where ka is m when SIDE = 'L' or 'l' and is n otherwise\&. Before entry with SIDE = 'L' or 'l', the m by m part of the array A must contain the hermitian matrix, such that when UPLO = 'U' or 'u', the leading m by m upper triangular part of the array A must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading m by m lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced\&. Before entry with SIDE = 'R' or 'r', the n by n part of the array A must contain the hermitian matrix, such that when UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced\&. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program\&. When SIDE = 'L' or 'l' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n )\&. .fi .PP .br \fIB\fP .PP .nf B is COMPLEX array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B\&. .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program\&. LDB must be at least max( 1, m )\&. .fi .PP .br \fIBETA\fP .PP .nf BETA is COMPLEX On entry, BETA specifies the scalar beta\&. When BETA is supplied as zero then C need not be set on input\&. .fi .PP .br \fIC\fP .PP .nf C is COMPLEX array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry\&. On exit, the array C is overwritten by the m by n updated matrix\&. .fi .PP .br \fILDC\fP .PP .nf 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, m )\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf 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\&. .fi .PP .RE .PP .SS "subroutine csymm (character side, character uplo, integer m, integer n, complex alpha, complex, dimension(lda,*) a, integer lda, complex, dimension(ldb,*) b, integer ldb, complex beta, complex, dimension(ldc,*) c, integer ldc)" .PP \fBCSYMM\fP .PP \fBPurpose:\fP .RS 4 .PP .nf CSYMM performs one of the matrix-matrix operations C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fISIDE\fP .PP .nf SIDE is CHARACTER*1 On entry, SIDE specifies whether the symmetric matrix A appears on the left or right in the operation as follows: SIDE = 'L' or 'l' C := alpha*A*B + beta*C, SIDE = 'R' or 'r' C := alpha*B*A + beta*C, .fi .PP .br \fIUPLO\fP .PP .nf UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is to be referenced as follows: UPLO = 'U' or 'u' Only the upper triangular part of the symmetric matrix is to be referenced\&. UPLO = 'L' or 'l' Only the lower triangular part of the symmetric matrix is to be referenced\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER On entry, M specifies the number of rows of the matrix C\&. M must be at least zero\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER On entry, N specifies the number of columns of the matrix C\&. N must be at least zero\&. .fi .PP .br \fIALPHA\fP .PP .nf ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha\&. .fi .PP .br \fIA\fP .PP .nf A is COMPLEX array, dimension ( LDA, ka ), where ka is m when SIDE = 'L' or 'l' and is n otherwise\&. Before entry with SIDE = 'L' or 'l', the m by m part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced\&. Before entry with SIDE = 'R' or 'r', the n by n part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program\&. When SIDE = 'L' or 'l' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n )\&. .fi .PP .br \fIB\fP .PP .nf B is COMPLEX array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B\&. .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program\&. LDB must be at least max( 1, m )\&. .fi .PP .br \fIBETA\fP .PP .nf BETA is COMPLEX On entry, BETA specifies the scalar beta\&. When BETA is supplied as zero then C need not be set on input\&. .fi .PP .br \fIC\fP .PP .nf C is COMPLEX array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry\&. On exit, the array C is overwritten by the m by n updated matrix\&. .fi .PP .br \fILDC\fP .PP .nf 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, m )\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf 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\&. .fi .PP .RE .PP .SS "subroutine dsymm (character side, character uplo, integer m, integer n, 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)" .PP \fBDSYMM\fP .PP \fBPurpose:\fP .RS 4 .PP .nf DSYMM performs one of the matrix-matrix operations C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fISIDE\fP .PP .nf SIDE is CHARACTER*1 On entry, SIDE specifies whether the symmetric matrix A appears on the left or right in the operation as follows: SIDE = 'L' or 'l' C := alpha*A*B + beta*C, SIDE = 'R' or 'r' C := alpha*B*A + beta*C, .fi .PP .br \fIUPLO\fP .PP .nf UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is to be referenced as follows: UPLO = 'U' or 'u' Only the upper triangular part of the symmetric matrix is to be referenced\&. UPLO = 'L' or 'l' Only the lower triangular part of the symmetric matrix is to be referenced\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER On entry, M specifies the number of rows of the matrix C\&. M must be at least zero\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER On entry, N specifies the number of columns of the matrix C\&. N must be at least zero\&. .fi .PP .br \fIALPHA\fP .PP .nf ALPHA is DOUBLE PRECISION\&. On entry, ALPHA specifies the scalar alpha\&. .fi .PP .br \fIA\fP .PP .nf A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is m when SIDE = 'L' or 'l' and is n otherwise\&. Before entry with SIDE = 'L' or 'l', the m by m part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced\&. Before entry with SIDE = 'R' or 'r', the n by n part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program\&. When SIDE = 'L' or 'l' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n )\&. .fi .PP .br \fIB\fP .PP .nf B is DOUBLE PRECISION array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B\&. .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program\&. LDB must be at least max( 1, m )\&. .fi .PP .br \fIBETA\fP .PP .nf BETA is DOUBLE PRECISION\&. On entry, BETA specifies the scalar beta\&. When BETA is supplied as zero then C need not be set on input\&. .fi .PP .br \fIC\fP .PP .nf C is DOUBLE PRECISION array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry\&. On exit, the array C is overwritten by the m by n updated matrix\&. .fi .PP .br \fILDC\fP .PP .nf 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, m )\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf 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\&. .fi .PP .RE .PP .SS "subroutine ssymm (character side, character uplo, integer m, integer n, real alpha, real, dimension(lda,*) a, integer lda, real, dimension(ldb,*) b, integer ldb, real beta, real, dimension(ldc,*) c, integer ldc)" .PP \fBSSYMM\fP .PP \fBPurpose:\fP .RS 4 .PP .nf SSYMM performs one of the matrix-matrix operations C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fISIDE\fP .PP .nf SIDE is CHARACTER*1 On entry, SIDE specifies whether the symmetric matrix A appears on the left or right in the operation as follows: SIDE = 'L' or 'l' C := alpha*A*B + beta*C, SIDE = 'R' or 'r' C := alpha*B*A + beta*C, .fi .PP .br \fIUPLO\fP .PP .nf UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is to be referenced as follows: UPLO = 'U' or 'u' Only the upper triangular part of the symmetric matrix is to be referenced\&. UPLO = 'L' or 'l' Only the lower triangular part of the symmetric matrix is to be referenced\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER On entry, M specifies the number of rows of the matrix C\&. M must be at least zero\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER On entry, N specifies the number of columns of the matrix C\&. N must be at least zero\&. .fi .PP .br \fIALPHA\fP .PP .nf ALPHA is REAL On entry, ALPHA specifies the scalar alpha\&. .fi .PP .br \fIA\fP .PP .nf A is REAL array, dimension ( LDA, ka ), where ka is m when SIDE = 'L' or 'l' and is n otherwise\&. Before entry with SIDE = 'L' or 'l', the m by m part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced\&. Before entry with SIDE = 'R' or 'r', the n by n part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program\&. When SIDE = 'L' or 'l' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n )\&. .fi .PP .br \fIB\fP .PP .nf B is REAL array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B\&. .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program\&. LDB must be at least max( 1, m )\&. .fi .PP .br \fIBETA\fP .PP .nf BETA is REAL On entry, BETA specifies the scalar beta\&. When BETA is supplied as zero then C need not be set on input\&. .fi .PP .br \fIC\fP .PP .nf C is REAL array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry\&. On exit, the array C is overwritten by the m by n updated matrix\&. .fi .PP .br \fILDC\fP .PP .nf 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, m )\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf 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\&. .fi .PP .RE .PP .SS "subroutine zhemm (character side, character uplo, integer m, integer n, 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)" .PP \fBZHEMM\fP .PP \fBPurpose:\fP .RS 4 .PP .nf ZHEMM performs one of the matrix-matrix operations C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, where alpha and beta are scalars, A is an hermitian matrix and B and C are m by n matrices\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fISIDE\fP .PP .nf SIDE is CHARACTER*1 On entry, SIDE specifies whether the hermitian matrix A appears on the left or right in the operation as follows: SIDE = 'L' or 'l' C := alpha*A*B + beta*C, SIDE = 'R' or 'r' C := alpha*B*A + beta*C, .fi .PP .br \fIUPLO\fP .PP .nf UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the hermitian matrix A is to be referenced as follows: UPLO = 'U' or 'u' Only the upper triangular part of the hermitian matrix is to be referenced\&. UPLO = 'L' or 'l' Only the lower triangular part of the hermitian matrix is to be referenced\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER On entry, M specifies the number of rows of the matrix C\&. M must be at least zero\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER On entry, N specifies the number of columns of the matrix C\&. N must be at least zero\&. .fi .PP .br \fIALPHA\fP .PP .nf ALPHA is COMPLEX*16 On entry, ALPHA specifies the scalar alpha\&. .fi .PP .br \fIA\fP .PP .nf A is COMPLEX*16 array, dimension ( LDA, ka ), where ka is m when SIDE = 'L' or 'l' and is n otherwise\&. Before entry with SIDE = 'L' or 'l', the m by m part of the array A must contain the hermitian matrix, such that when UPLO = 'U' or 'u', the leading m by m upper triangular part of the array A must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading m by m lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced\&. Before entry with SIDE = 'R' or 'r', the n by n part of the array A must contain the hermitian matrix, such that when UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced\&. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program\&. When SIDE = 'L' or 'l' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n )\&. .fi .PP .br \fIB\fP .PP .nf B is COMPLEX*16 array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B\&. .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program\&. LDB must be at least max( 1, m )\&. .fi .PP .br \fIBETA\fP .PP .nf BETA is COMPLEX*16 On entry, BETA specifies the scalar beta\&. When BETA is supplied as zero then C need not be set on input\&. .fi .PP .br \fIC\fP .PP .nf C is COMPLEX*16 array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry\&. On exit, the array C is overwritten by the m by n updated matrix\&. .fi .PP .br \fILDC\fP .PP .nf 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, m )\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf 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\&. .fi .PP .RE .PP .SS "subroutine zsymm (character side, character uplo, integer m, integer n, 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)" .PP \fBZSYMM\fP .PP \fBPurpose:\fP .RS 4 .PP .nf ZSYMM performs one of the matrix-matrix operations C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fISIDE\fP .PP .nf SIDE is CHARACTER*1 On entry, SIDE specifies whether the symmetric matrix A appears on the left or right in the operation as follows: SIDE = 'L' or 'l' C := alpha*A*B + beta*C, SIDE = 'R' or 'r' C := alpha*B*A + beta*C, .fi .PP .br \fIUPLO\fP .PP .nf UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is to be referenced as follows: UPLO = 'U' or 'u' Only the upper triangular part of the symmetric matrix is to be referenced\&. UPLO = 'L' or 'l' Only the lower triangular part of the symmetric matrix is to be referenced\&. .fi .PP .br \fIM\fP .PP .nf M is INTEGER On entry, M specifies the number of rows of the matrix C\&. M must be at least zero\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER On entry, N specifies the number of columns of the matrix C\&. N must be at least zero\&. .fi .PP .br \fIALPHA\fP .PP .nf ALPHA is COMPLEX*16 On entry, ALPHA specifies the scalar alpha\&. .fi .PP .br \fIA\fP .PP .nf A is COMPLEX*16 array, dimension ( LDA, ka ), where ka is m when SIDE = 'L' or 'l' and is n otherwise\&. Before entry with SIDE = 'L' or 'l', the m by m part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced\&. Before entry with SIDE = 'R' or 'r', the n by n part of the array A must contain the symmetric matrix, such that when UPLO = 'U' or 'u', the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = 'L' or 'l', the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program\&. When SIDE = 'L' or 'l' then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n )\&. .fi .PP .br \fIB\fP .PP .nf B is COMPLEX*16 array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B\&. .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program\&. LDB must be at least max( 1, m )\&. .fi .PP .br \fIBETA\fP .PP .nf BETA is COMPLEX*16 On entry, BETA specifies the scalar beta\&. When BETA is supplied as zero then C need not be set on input\&. .fi .PP .br \fIC\fP .PP .nf C is COMPLEX*16 array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry\&. On exit, the array C is overwritten by the m by n updated matrix\&. .fi .PP .br \fILDC\fP .PP .nf 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, m )\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf 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\&. .fi .PP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.