CXML
ssymm, dsymm, csymm, zsymm, chemm, zhemm
Matrix-matrix product and
addition for a symmetric or hermitian matrix
FORMAT
{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 )
Arguments
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.
Description
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.
Example
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.
CXML Home Page Index of CXML Routines