Note: this is a BLAS routine and is not in libslatec.a
*DECK CHEMM SUBROUTINE CHEMM (SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, $ C, LDC) C***BEGIN PROLOGUE CHEMM C***PURPOSE Multiply a complex general matrix by a complex Hermitian C matrix. C***LIBRARY SLATEC (BLAS) C***CATEGORY D1B6 C***TYPE COMPLEX (SHEMM-S, DHEMM-D, CHEMM-C) C***KEYWORDS LEVEL 3 BLAS, LINEAR ALGEBRA C***AUTHOR Dongarra, J., (ANL) C Duff, I., (AERE) C Du Croz, J., (NAG) C Hammarling, S. (NAG) C***DESCRIPTION C C CHEMM performs one of the matrix-matrix operations C C C := alpha*A*B + beta*C, C C or C C C := alpha*B*A + beta*C, C C where alpha and beta are scalars, A is an hermitian matrix and B and C C are m by n matrices. C C Parameters C ========== C C SIDE - CHARACTER*1. C On entry, SIDE specifies whether the hermitian matrix A C appears on the left or right in the operation as follows: C C SIDE = 'L' or 'l' C := alpha*A*B + beta*C, C C SIDE = 'R' or 'r' C := alpha*B*A + beta*C, C C Unchanged on exit. C C UPLO - CHARACTER*1. C On entry, UPLO specifies whether the upper or lower C triangular part of the hermitian matrix A is to be C referenced as follows: C C UPLO = 'U' or 'u' Only the upper triangular part of the C hermitian matrix is to be referenced. C C UPLO = 'L' or 'l' Only the lower triangular part of the C hermitian matrix is to be referenced. C C Unchanged on exit. C C M - INTEGER. C On entry, M specifies the number of rows of the matrix C. C M must be at least zero. C Unchanged on exit. C C N - INTEGER. C On entry, N specifies the number of columns of the matrix C. C N must be at least zero. C Unchanged on exit. C C ALPHA - COMPLEX . C On entry, ALPHA specifies the scalar alpha. C Unchanged on exit. C C A - COMPLEX array of DIMENSION ( LDA, ka ), where ka is C m when SIDE = 'L' or 'l' and is n otherwise. C Before entry with SIDE = 'L' or 'l', the m by m part of C the array A must contain the hermitian matrix, such that C when UPLO = 'U' or 'u', the leading m by m upper triangular C part of the array A must contain the upper triangular part C of the hermitian matrix and the strictly lower triangular C part of A is not referenced, and when UPLO = 'L' or 'l', C the leading m by m lower triangular part of the array A C must contain the lower triangular part of the hermitian C matrix and the strictly upper triangular part of A is not C referenced. C Before entry with SIDE = 'R' or 'r', the n by n part of C the array A must contain the hermitian matrix, such that C when UPLO = 'U' or 'u', the leading n by n upper triangular C part of the array A must contain the upper triangular part C of the hermitian matrix and the strictly lower triangular C part of A is not referenced, and when UPLO = 'L' or 'l', C the leading n by n lower triangular part of the array A C must contain the lower triangular part of the hermitian C matrix and the strictly upper triangular part of A is not C referenced. C Note that the imaginary parts of the diagonal elements need C not be set, they are assumed to be zero. C Unchanged on exit. C C LDA - INTEGER. C On entry, LDA specifies the first dimension of A as declared C in the calling (sub) program. When SIDE = 'L' or 'l' then C LDA must be at least max( 1, m ), otherwise LDA must be at C least max( 1, n ). C Unchanged on exit. C C B - COMPLEX array of DIMENSION ( LDB, n ). C Before entry, the leading m by n part of the array B must C contain the matrix B. C Unchanged on exit. C C LDB - INTEGER. C On entry, LDB specifies the first dimension of B as declared C in the calling (sub) program. LDB must be at least C max( 1, m ). C Unchanged on exit. C C BETA - COMPLEX . C On entry, BETA specifies the scalar beta. When BETA is C supplied as zero then C need not be set on input. C Unchanged on exit. C C C - COMPLEX array of DIMENSION ( LDC, n ). C Before entry, the leading m by n part of the array C must C contain the matrix C, except when beta is zero, in which C case C need not be set on entry. C On exit, the array C is overwritten by the m by n updated C matrix. C C LDC - INTEGER. C On entry, LDC specifies the first dimension of C as declared C in the calling (sub) program. LDC must be at least C max( 1, m ). C Unchanged on exit. C C***REFERENCES Dongarra, J., Du Croz, J., Duff, I., and Hammarling, S. C A set of level 3 basic linear algebra subprograms. C ACM TOMS, Vol. 16, No. 1, pp. 1-17, March 1990. C***ROUTINES CALLED LSAME, XERBLA C***REVISION HISTORY (YYMMDD) C 890208 DATE WRITTEN C 910605 Modified to meet SLATEC prologue standards. Only comment C lines were modified. (BKS) C***END PROLOGUE CHEMM