45 #include "KokkosKernels_config.h" 56 #ifdef HAVE_TPETRA_INST_COMPLEX_FLOAT 58 #define TPETRACORE_CGEMM TPETRACORE_F77_BLAS_MANGLE(cgemm,CGEMM) 62 (
const char* transA,
const char* transB,
63 const int* m,
const int* n,
const int* k,
64 const void* alpha,
const void* a,
const int* lda,
65 const void* b,
const int* ldb,
66 const void* beta,
void* c,
const int* ldc);
68 #endif // HAVE_TPETRA_INST_COMPLEX_FLOAT 70 #define TPETRACORE_DGEMM TPETRACORE_F77_BLAS_MANGLE(dgemm,DGEMM) 74 (
const char* transA,
const char* transB,
75 const int* m,
const int* n,
const int* k,
76 const double* alpha,
const double* a,
const int* lda,
77 const double* b,
const int* ldb,
78 const double* beta,
double* c,
const int* ldc);
80 #define TPETRACORE_SGEMM TPETRACORE_F77_BLAS_MANGLE(sgemm,SGEMM) 84 (
const char* transA,
const char* transB,
85 const int* m,
const int* n,
const int* k,
86 const float* alpha,
const float* a,
const int* lda,
87 const float* b,
const int* ldb,
88 const float* beta,
float* c,
const int* ldc);
90 #ifdef HAVE_TPETRA_INST_COMPLEX_DOUBLE 92 #define TPETRACORE_ZGEMM TPETRACORE_F77_BLAS_MANGLE(zgemm,ZGEMM) 96 (
const char* transA,
const char* transB,
97 const int* m,
const int* n,
const int* k,
98 const void* alpha,
const void* a,
const int* lda,
99 const void* b,
const int* ldb,
100 const void* beta,
void* c,
const int* ldc);
102 #endif // HAVE_TPETRA_INST_COMPLEX_DOUBLE 111 cgemm (
const char transA,
116 const ::Kokkos::complex<float>& alpha,
117 const ::Kokkos::complex<float> A[],
119 const ::Kokkos::complex<float> B[],
121 const ::Kokkos::complex<float>& beta,
122 ::Kokkos::complex<float> C[],
125 #ifdef HAVE_TPETRA_INST_COMPLEX_FLOAT 126 TPETRACORE_CGEMM (&transA, &transB, &m, &n, &k, &alpha, A, &lda, B, &ldb, &beta, C, &ldc);
128 throw std::runtime_error (
"Tpetra::Details::Blas::Lib::Impl::cgemm: " 129 "You must configure Tpetra with complex<float> support.");
130 #endif // HAVE_TPETRA_INST_COMPLEX_FLOAT 134 dgemm (
const char transA,
148 TPETRACORE_DGEMM (&transA, &transB, &m, &n, &k, &alpha, A, &lda, B, &ldb, &beta, C, &ldc);
152 sgemm (
const char transA,
166 TPETRACORE_SGEMM (&transA, &transB, &m, &n, &k, &alpha, A, &lda, B, &ldb, &beta, C, &ldc);
170 zgemm (
const char transA,
175 const ::Kokkos::complex<double>& alpha,
176 const ::Kokkos::complex<double> A[],
178 const ::Kokkos::complex<double> B[],
180 const ::Kokkos::complex<double>& beta,
181 ::Kokkos::complex<double> C[],
184 #ifdef HAVE_TPETRA_INST_COMPLEX_DOUBLE 185 TPETRACORE_ZGEMM (&transA, &transB, &m, &n, &k, &alpha, A, &lda, B, &ldb, &beta, C, &ldc);
187 throw std::runtime_error (
"Tpetra::Details::Blas::Lib::Impl::zgemm: " 188 "You must configure Tpetra with complex<double> support.");
189 #endif // HAVE_TPETRA_INST_COMPLEX_DOUBLE Namespace Tpetra contains the class and methods constituting the Tpetra library.
Wrappers for the BLAS library's implementation of _GEMM; implementation detail of Tpetra::MultiVector...
Implementation details of Tpetra.