gemm(3F)

SGEMM, DGEMM, CGEMM, ZGEMM - Multiplies a real or complex general matrix by a real or complex general matrix

As shipped in IRIX 6.5.15. Last changed in IRIX 6.5.5.

NAME
     SGEMM, DGEMM, CGEMM, ZGEMM - Multiplies a real or complex general
     matrix by a real or complex general matrix

SYNOPSIS
     Real

        CALL SGEMM (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta,
        c, ldc)

     Double precision

        CALL DGEMM (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta,
        c, ldc)

     Complex

        CALL CGEMM (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta,
        c, ldc)

     Double complex

        CALL ZGEMM (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta,
        c, ldc)

IMPLEMENTATION
     IRIX systems

DESCRIPTION
     SGEMM and DGEMM multiply a real general matrix by a real general
     matrix.

     CGEMM and ZGEMM  multiply a complex general matrix by a complex
     general matrix.

     These routines perform one of the matrix-matrix operations:

          C <- alpha op(A) or op(B) + beta C

     where op(X) is one of the following:

          op(X) = X
                   T
          op(X) = X
                   H
          op(X) = X  (CGEMM and ZGEMM only)

     where

     * alpha and beta are scalars

     * A, B, and C are matrices

     * op(A) is an m-by-k matrix

     * op(B) is a k-by-n matrix

     * C is an m-by-n matrix.
         T
     * X    is the transpose of x
        H
     * X   is the conjugate transpose of X.

     These routines have the following arguments:

     transa    Character*1.  (input)
               Specifies the form of op(A) to be used in the matrix
               multiplication, as follows:

               transa = 'N' or 'n': op(A) = A
                                              T
               transa = 'T' or 't': op(A) = A

                                              T
               transa = 'C' or 'c', op(A) = A    (SGEMM and DGEMM), or
                         H
               op(A)  = A   (CGEMM and ZGEMM)

     transb    Character*1.  (input)
               Specifies the form of op(B) to be used in the matrix
               multiplication, as follows:

               transb = 'N' or 'n': op(B) = B

                                             T
               transb = 'T' or 't': op(B) = B

                                             T
               transb = 'C' or 'c': op(B) = B  (SGEMM and DGEMM), or
                        H
               op(B) = B  (CGEMM and ZGEMM)

     m         Integer.  (input)
               Specifies the number of rows in matrix op(A) and in matrix
               C.  m must be >= 0.

     n         Integer.  (input)
               Specifies the number of columns in matrix op(B) and in
               matrix C.  n must be >= 0.

     k         Integer.  (input)
               Specifies the number of columns of matrix op(A) and the
               number of rows of matrix op(B).  k must be >= 0.

     alpha     First scalar factor.  (input)
               SGEMM: Real.
               DGEMM: Double precision.
               CGEMM: Complex.
               ZGEMM: Double complex.

     a         Array of dimension (lda,ka).  (input)
               SGEMM: Real array.
               DGEMM: Double precision array.
               CGEMM: Complex array.
               ZGEMM: Double complex array.
               When transa = 'N' or 'n', ka is k; otherwise, it is m.
               Contains the matrix A.

               Before entry with transa = 'N' or 'n', the leading m-by-k
               part of array a must contain matrix A; otherwise, the
               leading k-by-m part of array a must contain matrix A.

     lda       Integer.  (input)
               Specifies the first dimension of a as declared in the
               calling program.
               When transa = 'N' or 'n', lda >= MAX(1,m); otherwise, lda >=
               MAX(1,k).

     b         Array of dimension (ldb,kb).  (input)
               SGEMM: Real array.
               DGEMM: Double precision array.
               CGEMM: Complex array.
               ZGEMM: Double complex array.
               When transb = 'N' or 'n', kb is n; otherwise, it is k.
               Contains the matrix B.

               Before entry with transb = 'N' or 'n', the leading k-by-n
               part of array b must contain matrix B; otherwise, the
               leading n-by-k part of array b must contain matrix B.

     ldb       Integer.  (input)
               Specifies the first dimension of b as declared in the
               calling program.  When transb = 'N' or 'n', ldb >= MAX(1,k);
               otherwise, ldb >= MAX(1,n).

     beta      Scalar factor.  (input)
               SGEMM: Real.
               DGEMM: Double precision.
               CGEMM: Complex.
               ZGEMM: Double complex.  When beta is supplied as 0, c need
               not be set on input.

     c         Array of dimension (ldc,n).  (input and output)
               SGEMM: Real array.
               DGEMM: Double precision array.
               CGEMM: Complex array.
               ZGEMM: Double complex array.
               Contains the matrix C.

               Before entry, the leading m-by-n part of array c must
               contain matrix C, except when beta is 0; in which case, c
               need not be set.  On exit, the m-by-n result matrix
               overwrites array c.

     ldc       Integer.  (input)

               Specifies the first dimension of c as declared in the
               calling program.  ldc >= MAX(1,m).

NOTES
     These routines are Level 3 Basic Linear Algebra Subprograms (Level 3
     BLAS).

SEE ALSO
     This man page is available only online.