{S,D,C,Z}SYMM ( side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc ) {C,Z}HEMM ( side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc )
side character*1 On entry, specifies whether the symmetric matrix A multiplies B on the left side or the right side: If side = 'L' or 'l', the operation is C = alpha * A*B + beta*C. If side = 'R' or 'r', the operation is C = alpha * B*A + beta*C. On exit, side is unchanged. uplo character*1 On entry, specifies whether the upper- or lower- triangular part of the symmetric matrix A is referenced: If uplo = 'U' or 'u', the upper-triangular part of A is referenced. If uplo = 'L' or 'l', the lower-triangular part of A is referenced. On exit, uplo is unchanged. m integer*4 On entry, the number of rows of the matrix C; m >= 0 On exit, m is unchanged. n integer*4 On entry, the number of columns of the matrix C; n >= 0 On exit, n is unchanged. alpha real*4 | real*8 | complex*8 | complex*16 On entry, specifies the scalar alpha. On exit, alpha is unchanged. a real*4 | real*8 | complex*8 | complex*16 On entry, a two-dimensional array A with dimensions lda by ka. If the multiplication is on the left side, ka >= m and the leading m by m part of the array contains the matrix A. If the multiplication is on the right side, ka >= n and the leading n by n part of the array A must contain the matrix A. In either case, when the leading part of the array is specified as the upper part, the upper triangular part of array A contains the upper-triangular part of the matrix A, and the lower-triangular part of matrix A is not referenced. When the lower part is specified, the lower triangular part of the array A contains the lower triangular part of the matrix A, and the upper- triangular part of A is not referenced. In complex Hermitian matrices, the imaginary parts of the diagonal elements need not be set. They are assumed to be zero. On exit, a is unchanged. lda integer*4 On entry, the first dimension of array A. When multiplication is on the left, lda >= MAX(1,m). When multiplication is on the right, lda >= MAX(1,n). On exit, lda is unchanged. b real*4 | real*8 | complex*8 | complex*16 On entry, a two-dimensional array B of dimensions ldb by at least n. The leading m by n part of the array B must contain the matrix B. On exit, b is unchanged. ldb integer*4 On entry, the first dimension of B; ldb >= MAX(1,m) On exit, ldb is unchanged. beta real*4 | real*8 | complex*8 | complex*16 On entry, specifies the scalar beta. On exit, beta is unchanged. c real*4 | real*8 | complex*8 | complex*16 On entry, a two-dimensional array with the dimension ldc by at least n. On exit, c is overwritten; the array C is overwritten by the m by n updated matrix. ldc integer*4 On entry, the first dimension of array C; ldc >= MAX(1,n) On exit, ldc is unchanged.
These routines compute a matrix-matrix product and addition for a real or complex symmetric matrix or a complex Hermitian matrix: C = alpha * A*B + beta*C C = alpha * B*A + beta*C alpha and beta are scalars, A is the symmetric or Hermitian matrix, and B and C are m by n matrices.
REAL*4 A(20,20), B(30,40), C(30,50), alpha, beta M = 10 N = 20 LDA = 20 LDB = 30 LDC = 30 alpha = 2.0 beta = 3.0 CALL SSYMM ('L','U',M,N,alpha,A,LDA,B,LDB,beta,C,LDC) This FORTRAN code computes the product of a symmetric matrix and a rectangular matrix. The operation is C = alpha * A*B + beta*C where A is a 10 by 10 real symmetric matrix embedded in array A, B is a 10 by 20 real matrix embedded in array B, and C is a 10 by 20 real matrix embedded in array C. The leading 10 by 10 upper-triangular part of the array A contains the upper-triangular part of the matrix A. The lower-triangular part of A is not referenced. COMPLEX*16 A(30,40), B(15,20), C(19,13), alpha, beta M = 12 N = 7 LDA = 30 LDB = 15 LDC = 19 alpha = (2.0D0, 0.0D0) beta = (0.0D0, -2.0D0) CALL ZHEMM ('R','L',M,N,alpha,A,LDA,B,LDB,beta,C,LDC) This FORTRAN code computes the product of a Hermitian matrix and a rectangular matrix. The operation is C = alpha * B*A + beta*C where A is a 7 by 7 complex Hermitian matrix embedded in array A, B is a 12 by 7 complex matrix embedded in array B, and C is a 12 by 7 complex matrix embedded in array C. The leading 7 by 7 lower-triangular part of the array A contains the lower-triangular part of the matrix A. The upper-triangular part of A is not referenced.