Octopus
blas_oct_m::blas_gemm Interface Reference

--------------— gemm ---------------— performs one of the matrix-matrix operations More...

Detailed Description

--------------— gemm ---------------— performs one of the matrix-matrix operations

\[ C := \alpha op( A ) op( B ) + \beta C, \]

where op(X) is one of

\[ op( X ) = X \mbox{ or } op( X ) = X^T, \]

\( \alpha \) and \( \beta \) are scalars, and A, B and C are matrices, with op(A) an \( m \times k \) matrix, op(B) a \( k \times n \) matrix and C an \( m \times n \)m matrix.

Definition at line 500 of file blas.F90.

Public Member Functions

subroutine dgemm (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
 
subroutine zgemm (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
 
subroutine zdgemm (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
 A real matrix multiplying a complex one, added to a complex matrix. More...
 
subroutine sgemm (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
 
subroutine cgemm (transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
 

Member Function/Subroutine Documentation

◆ dgemm()

subroutine blas_oct_m::blas_gemm::dgemm ( character(1), intent(in)  transa,
character(1), intent(in)  transb,
integer, intent(in)  m,
integer, intent(in)  n,
integer, intent(in)  k,
real(real64), intent(in)  alpha,
real(real64), intent(in)  a,
integer, intent(in)  lda,
real(real64), intent(in)  b,
integer, intent(in)  ldb,
real(real64), intent(in)  beta,
real(real64), intent(inout)  c,
integer, intent(in)  ldc 
)
Parameters
[in]aa(lda,ka) ka=k if transa='N' or 'n'; m otherwise
[in]bb(ldb,kb) kb=k if transa='N' or 'n'; m otherwise
[in,out]cc(ldc,n)

Definition at line 501 of file blas.F90.

◆ zgemm()

subroutine blas_oct_m::blas_gemm::zgemm ( character(1), intent(in)  transa,
character(1), intent(in)  transb,
integer, intent(in)  m,
integer, intent(in)  n,
integer, intent(in)  k,
complex(real64), intent(in)  alpha,
complex(real64), intent(in)  a,
integer, intent(in)  lda,
complex(real64), intent(in)  b,
integer, intent(in)  ldb,
complex(real64), intent(in)  beta,
complex(real64), intent(inout)  c,
integer, intent(in)  ldc 
)
Parameters
[in]aa(lda,ka) ka=k if transa='N' or 'n'; m otherwise
[in]bb(ldb,kb) kb=k if transa='N' or 'n'; m otherwise
[in,out]cc(ldc,n)

Definition at line 512 of file blas.F90.

◆ zdgemm()

subroutine blas_oct_m::blas_gemm::zdgemm ( character(1), intent(in)  transa,
character(1), intent(in)  transb,
integer, intent(in)  m,
integer, intent(in)  n,
integer, intent(in)  k,
real(real64), intent(in)  alpha,
complex(real64), intent(in), target  a,
integer, intent(in)  lda,
real(real64), intent(in)  b,
integer, intent(in)  ldb,
real(real64), intent(in)  beta,
complex(real64), intent(inout), target  c,
integer, intent(in)  ldc 
)

A real matrix multiplying a complex one, added to a complex matrix.

A real matrix multiplies the real and imaginary parts alike, so this is dgemm over matrices with twice the rows, which the caller accounts for in m, lda and ldc. As above, a and c are reinterpreted rather than copied.

Parameters
[in]aa(lda,ka) ka=k if transa='N' or 'n'; m otherwise
[in]bb(ldb,kb) kb=k if transa='N' or 'n'; m otherwise
[in,out]cc(ldc,n)

Definition at line 799 of file blas.F90.

◆ sgemm()

subroutine blas_oct_m::blas_gemm::sgemm ( character(1), intent(in)  transa,
character(1), intent(in)  transb,
integer, intent(in)  m,
integer, intent(in)  n,
integer, intent(in)  k,
real(real32), intent(in)  alpha,
real(real32), intent(in)  a,
integer, intent(in)  lda,
real(real32), intent(in)  b,
integer, intent(in)  ldb,
real(real32), intent(in)  beta,
real(real32), intent(inout)  c,
integer, intent(in)  ldc 
)
Parameters
[in]aa(lda,ka) ka=k if transa='N' or 'n'; m otherwise
[in]bb(ldb,kb) kb=k if transa='N' or 'n'; m otherwise
[in,out]cc(ldc,n)

Definition at line 525 of file blas.F90.

◆ cgemm()

subroutine blas_oct_m::blas_gemm::cgemm ( character(1), intent(in)  transa,
character(1), intent(in)  transb,
integer, intent(in)  m,
integer, intent(in)  n,
integer, intent(in)  k,
complex(real32), intent(in)  alpha,
complex(real32), intent(in)  a,
integer, intent(in)  lda,
complex(real32), intent(in)  b,
integer, intent(in)  ldb,
complex(real32), intent(in)  beta,
complex(real32), intent(inout)  c,
integer, intent(in)  ldc 
)
Parameters
[in]aa(lda,ka) ka=k if transa='N' or 'n'; m otherwise
[in]bb(ldb,kb) kb=k if transa='N' or 'n'; m otherwise
[in,out]cc(ldc,n)

Definition at line 536 of file blas.F90.


The documentation for this interface was generated from the following file: