BLAS Level 3 Routines

?gemm performs the matrix-matrix operation
C = alpha op(A) op(B) + beta C
where C is an m by n matrix,
op(A) is an m by k matrix,
op(B) is a k by n matrix.
For the definition of op(A) and op(B), see Matrix Arguments.
call sgemm (transa, transb, m, n, k, salpha, SA, lda, SB, ldb, sbeta, SC, ldc)
call dgemm (transa, transb, m, n, k, dalpha, DA, lda, DB, ldb, dbeta, DC, ldc)
call cgemm (transa, transb, m, n, k, calpha, CA, lda, CB, ldb, cbeta, CC, ldc)
call zgemm (transa, transb, m, n, k, zalpha, ZA, lda, ZB, ldb, zbeta, ZC, ldc)

?hemm performs one of the following matrix-matrix operations:
C = alpha AB + beta C  for side = 'L'
C = alpha BA + beta C  for side = 'R'
where A is a complex Hermitian matrix,
B and C are complex m by n matrices.
call chemm (side, uplo, m, n, calpha, CA, lda, CB, ldb, cbeta, CC, ldc)
call zhemm (side, uplo, m, n, zalpha, ZA, lda, ZB, ldb, zbeta, ZC, ldc)

?herk performs a rank-k update of an n by n Hermitian matrix C, that is, one of the following operations:
C = alpha AAH + beta C  for trans = 'N'
C = alpha AHA + beta C  for trans = 'C'
where C is an n by n Hermitian matrix;
A is an n by k matrix if trans = 'N',
A is a k by n matrix if trans = 'C'.
call cherk (uplo, trans, n, k, salpha, CA, lda, sbeta, CC, ldc)
call zherk (uplo, trans, n, k, dalpha, ZA, lda, dbeta, ZC, ldc)

?her2k performs a rank-2k update of an n by n Hermitian matrix C, that is, one of the following operations:
C = alpha ABH + conjg(alpha) BAH + beta C  for trans = 'N'
C = alpha AHB + conjg(alpha) BHA + beta C  for trans = 'C'
where C is an n by n Hermitian matrix;
A and B are n by k matrices if trans = 'N',
A and B are k by n matrices if trans = 'C'.
call cher2k (uplo, trans, n, k, calpha, CA, lda, CB, ldb, sbeta, CC, ldc)
call zher2k (uplo, trans, n, k, zalpha, ZA, lda, ZB, ldb, dbeta, ZC, ldc)

?symm performs one of the following matrix-matrix operations:
C = alpha AB + beta C  for side = 'L'
C = alpha BA + beta C  for side = 'R'
where A is a symmetric matrix,
B and C are m by n matrices.
call ssymm (side, uplo, m, n, salpha, SA, lda, SB, ldb, sbeta, SC, ldc)
call dsymm (side, uplo, m, n, dalpha, DA, lda, DB, ldb, dbeta, DC, ldc)
call csymm (side, uplo, m, n, calpha, CA, lda, CB, ldb, cbeta, CC, ldc)
call zsymm (side, uplo, m, n, zalpha, ZA, lda, ZB, ldb, zbeta, ZC, ldc)

?syrk performs a rank-k update of an n by n symmetric matrix C, that is, one of the following operations:
C = alpha AAT + beta C  for trans = 'N'
C = alpha ATA + beta C  for trans = 'T'
where C is an n by n symmetric matrix;
A is an n by k matrix if trans = 'N',
A is a k by n matrix if trans = 'T'.
call ssyrk (uplo, trans, n, k, salpha, SA, lda, sbeta, SC, ldc)
call dsyrk (uplo, trans, n, k, dalpha, DA, lda, dbeta, DC, ldc)
call csyrk (uplo, trans, n, k, calpha, CA, lda, cbeta, CC, ldc)
call zsyrk (uplo, trans, n, k, zalpha, ZA, lda, zbeta, ZC, ldc)

?syr2k performs a rank-2k update of an n by n symmetric matrix C, that is, one of the following operations:
C = alpha ABT + alpha BAT + beta C  for trans = 'N'
C = alpha ATB + alpha BTA + beta C  for trans = 'T'
where C is an n by n symmetric matrix;
A and B are n by k matrices if trans = 'N',
A and B are k by n matrices if trans = 'T'.
call ssyr2k (uplo, trans, n, k, salpha, SA, lda, SB, ldb, sbeta, SC, ldc)
call dsyr2k (uplo, trans, n, k, dalpha, DA, lda, DB, ldb, dbeta, DC, ldc)
call csyr2k (uplo, trans, n, k, calpha, CA, lda, CB, ldb, cbeta, CC, ldc)
call zsyr2k (uplo, trans, n, k, zalpha, ZA, lda, ZB, ldb, zbeta, ZC, ldc)

?trmm performs one of the matrix-matrix operations
B = alpha op(A)B  for side = 'L'
B = alpha B op(A)  for side = 'R'
where B is an m by n general matrix, and A is triangular;
op(A) must be an m by m matrix if side = 'L'
op(A) must be an n by n matrix if side = 'R'.
For the definition of op(A), see Matrix Arguments.
call strmm (side, uplo, transa, diag, m, n, salpha, SA, lda, SB, ldb)
call dtrmm (side, uplo, transa, diag, m, n, dalpha, DA, lda, DB, ldb)
call ctrmm (side, uplo, transa, diag, m, n, calpha, CA, lda, CB, ldb)
call ztrmm (side, uplo, transa, diag, m, n, zalpha, ZA, lda, ZB, ldb)

?trsm solves for X one of the matrix equations
op(A)X = alpha B  or  Xop(A) = alpha B
where X and B are m by n general matrices, and A is triangular;
op(A) must be an m by m matrix if side = 'L'
op(A) must be an n by n matrix if side = 'R'.
For the definition of op(A), see Matrix Arguments. The routine overwrites X on B.
call strsm (side, uplo, transa, diag, m, n, salpha, SA, lda, SB, ldb)
call dtrsm (side, uplo, transa, diag, m, n, dalpha, DA, lda, DB, ldb)
call ctrsm (side, uplo, transa, diag, m, n, calpha, CA, lda, CB, ldb)
call ztrsm (side, uplo, transa, diag, m, n, zalpha, ZA, lda, ZB, ldb)

* Legal Information © 1999-2000, Intel Corporation