Matrix-matrix product C := alpha*op(A)*op(B) + beta*C (BLAS ?gemm). More...
Go to the source code of this file.
Namespaces | |
| namespace | belfem |
| USER GUIDES: | |
| namespace | belfem::lapack |
Functions | |
| void | belfem::lapack::sgemm_ (char *transa, char *transb, int_t *m, int_t *n, int_t *k, float *alpha, float *a, int_t *lda, float *b, int_t *ldb, float *beta, float *c, int_t *ldc, fortran_charlen_t lta, fortran_charlen_t ltb) |
| void | belfem::lapack::dgemm_ (char *transa, char *transb, int_t *m, int_t *n, int_t *k, double *alpha, double *a, int_t *lda, double *b, int_t *ldb, double *beta, double *c, int_t *ldc, fortran_charlen_t lta, fortran_charlen_t ltb) |
| void | belfem::lapack::cgemm_ (char *transa, char *transb, int_t *m, int_t *n, int_t *k, cplx_float_t *alpha, cplx_float_t *a, int_t *lda, cplx_float_t *b, int_t *ldb, cplx_float_t *beta, cplx_float_t *c, int_t *ldc, fortran_charlen_t lta, fortran_charlen_t ltb) |
| void | belfem::lapack::zgemm_ (char *transa, char *transb, int_t *m, int_t *n, int_t *k, cplx_double_t *alpha, cplx_double_t *a, int_t *lda, cplx_double_t *b, int_t *ldb, cplx_double_t *beta, cplx_double_t *c, int_t *ldc, fortran_charlen_t lta, fortran_charlen_t ltb) |
| template<typename T> | |
| void | belfem::lapack::gemm (const char *transa, const char *transb, const int_t *m, const int_t *n, const int_t *k, const T *alpha, const T *a, const int_t *lda, const T *b, const int_t *ldb, const T *beta, T *c, const int_t *ldc) |
| template<> | |
| void | belfem::lapack::gemm (const char *transa, const char *transb, const int_t *m, const int_t *n, const int_t *k, const float *alpha, const float *a, const int_t *lda, const float *b, const int_t *ldb, const float *beta, float *c, const int_t *ldc) |
| template<> | |
| void | belfem::lapack::gemm (const char *transa, const char *transb, const int_t *m, const int_t *n, const int_t *k, const double *alpha, const double *a, const int_t *lda, const double *b, const int_t *ldb, const double *beta, double *c, const int_t *ldc) |
| template<> | |
| void | belfem::lapack::gemm (const char *transa, const char *transb, const int_t *m, const int_t *n, const int_t *k, const std::complex< float > *alpha, const std::complex< float > *a, const int_t *lda, const std::complex< float > *b, const int_t *ldb, const std::complex< float > *beta, std::complex< float > *c, const int_t *ldc) |
| template<> | |
| void | belfem::lapack::gemm (const char *transa, const char *transb, const int_t *m, const int_t *n, const int_t *k, const std::complex< double > *alpha, const std::complex< double > *a, const int_t *lda, const std::complex< double > *b, const int_t *ldb, const std::complex< double > *beta, std::complex< double > *c, const int_t *ldc) |
| template<typename T> | |
| void | belfem::gemm (const Matrix< T > &A, const Matrix< T > &B, Matrix< T > &C, const T alpha=1.0, const T beta=0.0, const char transa='N', const char transb='N') |
| matrix-matrix product C := alpha * op(A) * op(B) + beta * C via BLAS ?gemm, where op is the identity ( trans = 'N' ) or the ( conjugate ) transpose ( 'T' / 'C' ) | |
Matrix-matrix product C := alpha*op(A)*op(B) + beta*C (BLAS ?gemm).
Thin wrapper over the Fortran routine: BELFEM containers are passed straight through after their leading dimensions are worked out. Arguments are not copied – see each parameter for what is overwritten in place.