CXML

ssymm, dsymm, csymm, zsymm, chemm, zhemm 


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