# hemm - Man Page

{he,sy}mm: Hermitian/symmetric matrix-matrix multiply

## Synopsis

### Functions

subroutine chemm (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
CHEMM
subroutine csymm (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
CSYMM
subroutine dsymm (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
DSYMM
subroutine ssymm (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
SSYMM
subroutine zhemm (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
ZHEMM
subroutine zsymm (side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
ZSYMM

## Function Documentation

### subroutine chemm (character side, character uplo, integer m, integer n, complex alpha, complex, dimension(lda,*) a, integer lda, complex, dimension(ldb,*) b, integer ldb, complex beta, complex, dimension(ldc,*) c, integer ldc)

CHEMM

Purpose:

``` CHEMM  performs one of the matrix-matrix operations

C := alpha*A*B + beta*C,

or

C := alpha*B*A + beta*C,

where alpha and beta are scalars, A is an hermitian matrix and  B and
C are m by n matrices.```
Parameters

SIDE

```          SIDE is CHARACTER*1
On entry,  SIDE  specifies whether  the  hermitian matrix  A
appears on the  left or right  in the  operation as follows:

SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,

SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,```

UPLO

```          UPLO is CHARACTER*1
On  entry,   UPLO  specifies  whether  the  upper  or  lower
triangular  part  of  the  hermitian  matrix   A  is  to  be
referenced as follows:

UPLO = 'U' or 'u'   Only the upper triangular part of the
hermitian matrix is to be referenced.

UPLO = 'L' or 'l'   Only the lower triangular part of the
hermitian matrix is to be referenced.```

M

```          M is INTEGER
On entry,  M  specifies the number of rows of the matrix  C.
M  must be at least zero.```

N

```          N is INTEGER
On entry, N specifies the number of columns of the matrix C.
N  must be at least zero.```

ALPHA

```          ALPHA is COMPLEX
On entry, ALPHA specifies the scalar alpha.```

A

```          A is COMPLEX array, dimension ( LDA, ka ), where ka is
m  when  SIDE = 'L' or 'l'  and is n  otherwise.
Before entry  with  SIDE = 'L' or 'l',  the  m by m  part of
the array  A  must contain the  hermitian matrix,  such that
when  UPLO = 'U' or 'u', the leading m by m upper triangular
part of the array  A  must contain the upper triangular part
of the  hermitian matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  m by m  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  hermitian
matrix and the  strictly upper triangular part of  A  is not
referenced.
Before entry  with  SIDE = 'R' or 'r',  the  n by n  part of
the array  A  must contain the  hermitian matrix,  such that
when  UPLO = 'U' or 'u', the leading n by n upper triangular
part of the array  A  must contain the upper triangular part
of the  hermitian matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  n by n  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  hermitian
matrix and the  strictly upper triangular part of  A  is not
referenced.
Note that the imaginary parts  of the diagonal elements need
not be set, they are assumed to be zero.```

LDA

```          LDA is INTEGER
On entry, LDA specifies the first dimension of A as declared
in the  calling (sub) program. When  SIDE = 'L' or 'l'  then
LDA must be at least  max( 1, m ), otherwise  LDA must be at
least max( 1, n ).```

B

```          B is COMPLEX array, dimension ( LDB, N )
Before entry, the leading  m by n part of the array  B  must
contain the matrix B.```

LDB

```          LDB is INTEGER
On entry, LDB specifies the first dimension of B as declared
in  the  calling  (sub)  program.   LDB  must  be  at  least
max( 1, m ).```

BETA

```          BETA is COMPLEX
On entry,  BETA  specifies the scalar  beta.  When  BETA  is
supplied as zero then C need not be set on input.```

C

```          C is COMPLEX array, dimension ( LDC, N )
Before entry, the leading  m by n  part of the array  C must
contain the matrix  C,  except when  beta  is zero, in which
case C need not be set on entry.
On exit, the array  C  is overwritten by the  m by n updated
matrix.```

LDC

```          LDC is INTEGER
On entry, LDC specifies the first dimension of C as declared
in  the  calling  (sub)  program.   LDC  must  be  at  least
max( 1, m ).```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Further Details:

```  Level 3 Blas routine.

-- Written on 8-February-1989.
Jack Dongarra, Argonne National Laboratory.
Iain Duff, AERE Harwell.
Jeremy Du Croz, Numerical Algorithms Group Ltd.
Sven Hammarling, Numerical Algorithms Group Ltd.```

Definition at line 190 of file chemm.f.

### subroutine csymm (character side, character uplo, integer m, integer n, complex alpha, complex, dimension(lda,*) a, integer lda, complex, dimension(ldb,*) b, integer ldb, complex beta, complex, dimension(ldc,*) c, integer ldc)

CSYMM

Purpose:

``` CSYMM  performs one of the matrix-matrix operations

C := alpha*A*B + beta*C,

or

C := alpha*B*A + beta*C,

where  alpha and beta are scalars, A is a symmetric matrix and  B and
C are m by n matrices.```
Parameters

SIDE

```          SIDE is CHARACTER*1
On entry,  SIDE  specifies whether  the  symmetric matrix  A
appears on the  left or right  in the  operation as follows:

SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,

SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,```

UPLO

```          UPLO is CHARACTER*1
On  entry,   UPLO  specifies  whether  the  upper  or  lower
triangular  part  of  the  symmetric  matrix   A  is  to  be
referenced as follows:

UPLO = 'U' or 'u'   Only the upper triangular part of the
symmetric matrix is to be referenced.

UPLO = 'L' or 'l'   Only the lower triangular part of the
symmetric matrix is to be referenced.```

M

```          M is INTEGER
On entry,  M  specifies the number of rows of the matrix  C.
M  must be at least zero.```

N

```          N is INTEGER
On entry, N specifies the number of columns of the matrix C.
N  must be at least zero.```

ALPHA

```          ALPHA is COMPLEX
On entry, ALPHA specifies the scalar alpha.```

A

```          A is COMPLEX array, dimension ( LDA, ka ), where ka is
m  when  SIDE = 'L' or 'l'  and is n  otherwise.
Before entry  with  SIDE = 'L' or 'l',  the  m by m  part of
the array  A  must contain the  symmetric matrix,  such that
when  UPLO = 'U' or 'u', the leading m by m upper triangular
part of the array  A  must contain the upper triangular part
of the  symmetric matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  m by m  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  symmetric
matrix and the  strictly upper triangular part of  A  is not
referenced.
Before entry  with  SIDE = 'R' or 'r',  the  n by n  part of
the array  A  must contain the  symmetric matrix,  such that
when  UPLO = 'U' or 'u', the leading n by n upper triangular
part of the array  A  must contain the upper triangular part
of the  symmetric matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  n by n  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  symmetric
matrix and the  strictly upper triangular part of  A  is not
referenced.```

LDA

```          LDA is INTEGER
On entry, LDA specifies the first dimension of A as declared
in the  calling (sub) program. When  SIDE = 'L' or 'l'  then
LDA must be at least  max( 1, m ), otherwise  LDA must be at
least max( 1, n ).```

B

```          B is COMPLEX array, dimension ( LDB, N )
Before entry, the leading  m by n part of the array  B  must
contain the matrix B.```

LDB

```          LDB is INTEGER
On entry, LDB specifies the first dimension of B as declared
in  the  calling  (sub)  program.   LDB  must  be  at  least
max( 1, m ).```

BETA

```          BETA is COMPLEX
On entry,  BETA  specifies the scalar  beta.  When  BETA  is
supplied as zero then C need not be set on input.```

C

```          C is COMPLEX array, dimension ( LDC, N )
Before entry, the leading  m by n  part of the array  C must
contain the matrix  C,  except when  beta  is zero, in which
case C need not be set on entry.
On exit, the array  C  is overwritten by the  m by n updated
matrix.```

LDC

```          LDC is INTEGER
On entry, LDC specifies the first dimension of C as declared
in  the  calling  (sub)  program.   LDC  must  be  at  least
max( 1, m ).```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Further Details:

```  Level 3 Blas routine.

-- Written on 8-February-1989.
Jack Dongarra, Argonne National Laboratory.
Iain Duff, AERE Harwell.
Jeremy Du Croz, Numerical Algorithms Group Ltd.
Sven Hammarling, Numerical Algorithms Group Ltd.```

Definition at line 188 of file csymm.f.

### subroutine dsymm (character side, character uplo, integer m, integer n, double precision alpha, double precision, dimension(lda,*) a, integer lda, double precision, dimension(ldb,*) b, integer ldb, double precision beta, double precision, dimension(ldc,*) c, integer ldc)

DSYMM

Purpose:

``` DSYMM  performs one of the matrix-matrix operations

C := alpha*A*B + beta*C,

or

C := alpha*B*A + beta*C,

where alpha and beta are scalars,  A is a symmetric matrix and  B and
C are  m by n matrices.```
Parameters

SIDE

```          SIDE is CHARACTER*1
On entry,  SIDE  specifies whether  the  symmetric matrix  A
appears on the  left or right  in the  operation as follows:

SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,

SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,```

UPLO

```          UPLO is CHARACTER*1
On  entry,   UPLO  specifies  whether  the  upper  or  lower
triangular  part  of  the  symmetric  matrix   A  is  to  be
referenced as follows:

UPLO = 'U' or 'u'   Only the upper triangular part of the
symmetric matrix is to be referenced.

UPLO = 'L' or 'l'   Only the lower triangular part of the
symmetric matrix is to be referenced.```

M

```          M is INTEGER
On entry,  M  specifies the number of rows of the matrix  C.
M  must be at least zero.```

N

```          N is INTEGER
On entry, N specifies the number of columns of the matrix C.
N  must be at least zero.```

ALPHA

```          ALPHA is DOUBLE PRECISION.
On entry, ALPHA specifies the scalar alpha.```

A

```          A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is
m  when  SIDE = 'L' or 'l'  and is  n otherwise.
Before entry  with  SIDE = 'L' or 'l',  the  m by m  part of
the array  A  must contain the  symmetric matrix,  such that
when  UPLO = 'U' or 'u', the leading m by m upper triangular
part of the array  A  must contain the upper triangular part
of the  symmetric matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  m by m  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  symmetric
matrix and the  strictly upper triangular part of  A  is not
referenced.
Before entry  with  SIDE = 'R' or 'r',  the  n by n  part of
the array  A  must contain the  symmetric matrix,  such that
when  UPLO = 'U' or 'u', the leading n by n upper triangular
part of the array  A  must contain the upper triangular part
of the  symmetric matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  n by n  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  symmetric
matrix and the  strictly upper triangular part of  A  is not
referenced.```

LDA

```          LDA is INTEGER
On entry, LDA specifies the first dimension of A as declared
in the calling (sub) program.  When  SIDE = 'L' or 'l'  then
LDA must be at least  max( 1, m ), otherwise  LDA must be at
least  max( 1, n ).```

B

```          B is DOUBLE PRECISION array, dimension ( LDB, N )
Before entry, the leading  m by n part of the array  B  must
contain the matrix B.```

LDB

```          LDB is INTEGER
On entry, LDB specifies the first dimension of B as declared
in  the  calling  (sub)  program.   LDB  must  be  at  least
max( 1, m ).```

BETA

```          BETA is DOUBLE PRECISION.
On entry,  BETA  specifies the scalar  beta.  When  BETA  is
supplied as zero then C need not be set on input.```

C

```          C is DOUBLE PRECISION array, dimension ( LDC, N )
Before entry, the leading  m by n  part of the array  C must
contain the matrix  C,  except when  beta  is zero, in which
case C need not be set on entry.
On exit, the array  C  is overwritten by the  m by n updated
matrix.```

LDC

```          LDC is INTEGER
On entry, LDC specifies the first dimension of C as declared
in  the  calling  (sub)  program.   LDC  must  be  at  least
max( 1, m ).```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Further Details:

```  Level 3 Blas routine.

-- Written on 8-February-1989.
Jack Dongarra, Argonne National Laboratory.
Iain Duff, AERE Harwell.
Jeremy Du Croz, Numerical Algorithms Group Ltd.
Sven Hammarling, Numerical Algorithms Group Ltd.```

Definition at line 188 of file dsymm.f.

### subroutine ssymm (character side, character uplo, integer m, integer n, real alpha, real, dimension(lda,*) a, integer lda, real, dimension(ldb,*) b, integer ldb, real beta, real, dimension(ldc,*) c, integer ldc)

SSYMM

Purpose:

``` SSYMM  performs one of the matrix-matrix operations

C := alpha*A*B + beta*C,

or

C := alpha*B*A + beta*C,

where alpha and beta are scalars,  A is a symmetric matrix and  B and
C are  m by n matrices.```
Parameters

SIDE

```          SIDE is CHARACTER*1
On entry,  SIDE  specifies whether  the  symmetric matrix  A
appears on the  left or right  in the  operation as follows:

SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,

SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,```

UPLO

```          UPLO is CHARACTER*1
On  entry,   UPLO  specifies  whether  the  upper  or  lower
triangular  part  of  the  symmetric  matrix   A  is  to  be
referenced as follows:

UPLO = 'U' or 'u'   Only the upper triangular part of the
symmetric matrix is to be referenced.

UPLO = 'L' or 'l'   Only the lower triangular part of the
symmetric matrix is to be referenced.```

M

```          M is INTEGER
On entry,  M  specifies the number of rows of the matrix  C.
M  must be at least zero.```

N

```          N is INTEGER
On entry, N specifies the number of columns of the matrix C.
N  must be at least zero.```

ALPHA

```          ALPHA is REAL
On entry, ALPHA specifies the scalar alpha.```

A

```          A is REAL array, dimension ( LDA, ka ), where ka is
m  when  SIDE = 'L' or 'l'  and is  n otherwise.
Before entry  with  SIDE = 'L' or 'l',  the  m by m  part of
the array  A  must contain the  symmetric matrix,  such that
when  UPLO = 'U' or 'u', the leading m by m upper triangular
part of the array  A  must contain the upper triangular part
of the  symmetric matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  m by m  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  symmetric
matrix and the  strictly upper triangular part of  A  is not
referenced.
Before entry  with  SIDE = 'R' or 'r',  the  n by n  part of
the array  A  must contain the  symmetric matrix,  such that
when  UPLO = 'U' or 'u', the leading n by n upper triangular
part of the array  A  must contain the upper triangular part
of the  symmetric matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  n by n  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  symmetric
matrix and the  strictly upper triangular part of  A  is not
referenced.```

LDA

```          LDA is INTEGER
On entry, LDA specifies the first dimension of A as declared
in the calling (sub) program.  When  SIDE = 'L' or 'l'  then
LDA must be at least  max( 1, m ), otherwise  LDA must be at
least  max( 1, n ).```

B

```          B is REAL array, dimension ( LDB, N )
Before entry, the leading  m by n part of the array  B  must
contain the matrix B.```

LDB

```          LDB is INTEGER
On entry, LDB specifies the first dimension of B as declared
in  the  calling  (sub)  program.   LDB  must  be  at  least
max( 1, m ).```

BETA

```          BETA is REAL
On entry,  BETA  specifies the scalar  beta.  When  BETA  is
supplied as zero then C need not be set on input.```

C

```          C is REAL array, dimension ( LDC, N )
Before entry, the leading  m by n  part of the array  C must
contain the matrix  C,  except when  beta  is zero, in which
case C need not be set on entry.
On exit, the array  C  is overwritten by the  m by n updated
matrix.```

LDC

```          LDC is INTEGER
On entry, LDC specifies the first dimension of C as declared
in  the  calling  (sub)  program.   LDC  must  be  at  least
max( 1, m ).```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Further Details:

```  Level 3 Blas routine.

-- Written on 8-February-1989.
Jack Dongarra, Argonne National Laboratory.
Iain Duff, AERE Harwell.
Jeremy Du Croz, Numerical Algorithms Group Ltd.
Sven Hammarling, Numerical Algorithms Group Ltd.```

Definition at line 188 of file ssymm.f.

### subroutine zhemm (character side, character uplo, integer m, integer n, complex*16 alpha, complex*16, dimension(lda,*) a, integer lda, complex*16, dimension(ldb,*) b, integer ldb, complex*16 beta, complex*16, dimension(ldc,*) c, integer ldc)

ZHEMM

Purpose:

``` ZHEMM  performs one of the matrix-matrix operations

C := alpha*A*B + beta*C,

or

C := alpha*B*A + beta*C,

where alpha and beta are scalars, A is an hermitian matrix and  B and
C are m by n matrices.```
Parameters

SIDE

```          SIDE is CHARACTER*1
On entry,  SIDE  specifies whether  the  hermitian matrix  A
appears on the  left or right  in the  operation as follows:

SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,

SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,```

UPLO

```          UPLO is CHARACTER*1
On  entry,   UPLO  specifies  whether  the  upper  or  lower
triangular  part  of  the  hermitian  matrix   A  is  to  be
referenced as follows:

UPLO = 'U' or 'u'   Only the upper triangular part of the
hermitian matrix is to be referenced.

UPLO = 'L' or 'l'   Only the lower triangular part of the
hermitian matrix is to be referenced.```

M

```          M is INTEGER
On entry,  M  specifies the number of rows of the matrix  C.
M  must be at least zero.```

N

```          N is INTEGER
On entry, N specifies the number of columns of the matrix C.
N  must be at least zero.```

ALPHA

```          ALPHA is COMPLEX*16
On entry, ALPHA specifies the scalar alpha.```

A

```          A is COMPLEX*16 array, dimension ( LDA, ka ), where ka is
m  when  SIDE = 'L' or 'l'  and is n  otherwise.
Before entry  with  SIDE = 'L' or 'l',  the  m by m  part of
the array  A  must contain the  hermitian matrix,  such that
when  UPLO = 'U' or 'u', the leading m by m upper triangular
part of the array  A  must contain the upper triangular part
of the  hermitian matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  m by m  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  hermitian
matrix and the  strictly upper triangular part of  A  is not
referenced.
Before entry  with  SIDE = 'R' or 'r',  the  n by n  part of
the array  A  must contain the  hermitian matrix,  such that
when  UPLO = 'U' or 'u', the leading n by n upper triangular
part of the array  A  must contain the upper triangular part
of the  hermitian matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  n by n  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  hermitian
matrix and the  strictly upper triangular part of  A  is not
referenced.
Note that the imaginary parts  of the diagonal elements need
not be set, they are assumed to be zero.```

LDA

```          LDA is INTEGER
On entry, LDA specifies the first dimension of A as declared
in the  calling (sub) program. When  SIDE = 'L' or 'l'  then
LDA must be at least  max( 1, m ), otherwise  LDA must be at
least max( 1, n ).```

B

```          B is COMPLEX*16 array, dimension ( LDB, N )
Before entry, the leading  m by n part of the array  B  must
contain the matrix B.```

LDB

```          LDB is INTEGER
On entry, LDB specifies the first dimension of B as declared
in  the  calling  (sub)  program.   LDB  must  be  at  least
max( 1, m ).```

BETA

```          BETA is COMPLEX*16
On entry,  BETA  specifies the scalar  beta.  When  BETA  is
supplied as zero then C need not be set on input.```

C

```          C is COMPLEX*16 array, dimension ( LDC, N )
Before entry, the leading  m by n  part of the array  C must
contain the matrix  C,  except when  beta  is zero, in which
case C need not be set on entry.
On exit, the array  C  is overwritten by the  m by n updated
matrix.```

LDC

```          LDC is INTEGER
On entry, LDC specifies the first dimension of C as declared
in  the  calling  (sub)  program.   LDC  must  be  at  least
max( 1, m ).```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Further Details:

```  Level 3 Blas routine.

-- Written on 8-February-1989.
Jack Dongarra, Argonne National Laboratory.
Iain Duff, AERE Harwell.
Jeremy Du Croz, Numerical Algorithms Group Ltd.
Sven Hammarling, Numerical Algorithms Group Ltd.```

Definition at line 190 of file zhemm.f.

### subroutine zsymm (character side, character uplo, integer m, integer n, complex*16 alpha, complex*16, dimension(lda,*) a, integer lda, complex*16, dimension(ldb,*) b, integer ldb, complex*16 beta, complex*16, dimension(ldc,*) c, integer ldc)

ZSYMM

Purpose:

``` ZSYMM  performs one of the matrix-matrix operations

C := alpha*A*B + beta*C,

or

C := alpha*B*A + beta*C,

where  alpha and beta are scalars, A is a symmetric matrix and  B and
C are m by n matrices.```
Parameters

SIDE

```          SIDE is CHARACTER*1
On entry,  SIDE  specifies whether  the  symmetric matrix  A
appears on the  left or right  in the  operation as follows:

SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,

SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,```

UPLO

```          UPLO is CHARACTER*1
On  entry,   UPLO  specifies  whether  the  upper  or  lower
triangular  part  of  the  symmetric  matrix   A  is  to  be
referenced as follows:

UPLO = 'U' or 'u'   Only the upper triangular part of the
symmetric matrix is to be referenced.

UPLO = 'L' or 'l'   Only the lower triangular part of the
symmetric matrix is to be referenced.```

M

```          M is INTEGER
On entry,  M  specifies the number of rows of the matrix  C.
M  must be at least zero.```

N

```          N is INTEGER
On entry, N specifies the number of columns of the matrix C.
N  must be at least zero.```

ALPHA

```          ALPHA is COMPLEX*16
On entry, ALPHA specifies the scalar alpha.```

A

```          A is COMPLEX*16 array, dimension ( LDA, ka ), where ka is
m  when  SIDE = 'L' or 'l'  and is n  otherwise.
Before entry  with  SIDE = 'L' or 'l',  the  m by m  part of
the array  A  must contain the  symmetric matrix,  such that
when  UPLO = 'U' or 'u', the leading m by m upper triangular
part of the array  A  must contain the upper triangular part
of the  symmetric matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  m by m  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  symmetric
matrix and the  strictly upper triangular part of  A  is not
referenced.
Before entry  with  SIDE = 'R' or 'r',  the  n by n  part of
the array  A  must contain the  symmetric matrix,  such that
when  UPLO = 'U' or 'u', the leading n by n upper triangular
part of the array  A  must contain the upper triangular part
of the  symmetric matrix and the  strictly  lower triangular
part of  A  is not referenced,  and when  UPLO = 'L' or 'l',
the leading  n by n  lower triangular part  of the  array  A
must  contain  the  lower triangular part  of the  symmetric
matrix and the  strictly upper triangular part of  A  is not
referenced.```

LDA

```          LDA is INTEGER
On entry, LDA specifies the first dimension of A as declared
in the  calling (sub) program. When  SIDE = 'L' or 'l'  then
LDA must be at least  max( 1, m ), otherwise  LDA must be at
least max( 1, n ).```

B

```          B is COMPLEX*16 array, dimension ( LDB, N )
Before entry, the leading  m by n part of the array  B  must
contain the matrix B.```

LDB

```          LDB is INTEGER
On entry, LDB specifies the first dimension of B as declared
in  the  calling  (sub)  program.   LDB  must  be  at  least
max( 1, m ).```

BETA

```          BETA is COMPLEX*16
On entry,  BETA  specifies the scalar  beta.  When  BETA  is
supplied as zero then C need not be set on input.```

C

```          C is COMPLEX*16 array, dimension ( LDC, N )
Before entry, the leading  m by n  part of the array  C must
contain the matrix  C,  except when  beta  is zero, in which
case C need not be set on entry.
On exit, the array  C  is overwritten by the  m by n updated
matrix.```

LDC

```          LDC is INTEGER
On entry, LDC specifies the first dimension of C as declared
in  the  calling  (sub)  program.   LDC  must  be  at  least
max( 1, m ).```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Further Details:

```  Level 3 Blas routine.

-- Written on 8-February-1989.
Jack Dongarra, Argonne National Laboratory.
Iain Duff, AERE Harwell.
Jeremy Du Croz, Numerical Algorithms Group Ltd.
Sven Hammarling, Numerical Algorithms Group Ltd.```

Definition at line 188 of file zsymm.f.

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Info

Tue Nov 28 2023 12:08:43 Version 3.12.0 LAPACK