Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ csymm(3dxml) — Extended Math Library 3.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

SSYMM(3dxml)  —  Subroutines

Name

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

sidecharacter∗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. 

uplocharacter∗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. 

minteger∗4
On entry, the number of rows of the matrix C; m >= 0
On exit, m is unchanged. 

ninteger∗4
On entry, the number of columns of the matrix C; n >= 0
On exit, n is unchanged. 

alphareal∗4 | real∗8 | complex∗8 | complex∗16
On entry, specifies the scalar alpha.
On exit, alpha is unchanged. 

areal∗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. 

ldainteger∗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. 

breal∗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. 

ldbinteger∗4
On entry, the first dimension of B; ldb >= MAX(1,m)
On exit, ldb is unchanged. 

betareal∗4 | real∗8 | complex∗8 | complex∗16
On entry, specifies the scalar beta.
On exit, beta is unchanged. 

creal∗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. 

ldcinteger∗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.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026