HP MLIB User's Guide Vol. 1 7th Ed.
Chapter 3 Basic Matrix Operations 265
Matrix-matrix multiply SSYMM/DSYMM/CHEMM/CSYMM/ZHEMM/ZSYMM
Name SSYMM/DSYMM/CHEMM/CSYMM/ZHEMM/ZSYMM
Matrix-matrix multiply
Purpose These subprograms compute the matrix-matrix products AB and BA, where A
is a real symmetric, complex symmetric, or complex Hermitian matrix, and B is
an m-by-n matrix. The size of A, either m-by-m or n-by-n, depends on which
matrix product is requested. The product can be stored in the result matrix
(which is always of size m-by-n) or, optionally, can be added to or subtracted
from it. This is handled in a convenient, but general, way by two scalar
arguments, α and β, which are used as multipliers of the matrix product and
the result matrix. Specifically, these subprograms compute matrix products of
the forms:
The structure of A is indicated by the name of the subprogram used:
Matrix
Storage
Because either triangle of A can be obtained from the other, you only need to
provide one triangle of A. You can supply either the upper or the lower triangle
of A, in a two-dimensional array large enough to hold the entire matrix. The
other triangle of the array is not referenced.
Usage VECLIB:
CHARACTER*1 side, uplo
INTEGER*4 m, n, lda, ldb, ldc
REAL*4 alpha, beta, a(lda, *), b(ldb, *), c(ldc, n)
CALL SSYMM(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
CHARACTER*1 side, uplo
INTEGER*4 m, n, lda, ldb, ldc
REAL*8 alpha, beta, a(lda, *), b(ldb, *), c(ldc, n)
CALL DSYMM(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
CHARACTER*1 side, uplo
INTEGER*4 m, n, lda, ldb, ldc
COMPLEX*8 alpha, beta, a(lda, *), b(ldb, *), c(ldc, n)
CALL CHEMM(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
SSYMM or DSYMM A is a real symmetric matrix
CHEMM or ZHEMM A is a complex Hermitian matrix
CSYMM or ZSYMM A is a complex symmetric matrix
C αAB←βC+ and C αBA←βC.+