45 #include "KokkosKernels_config.h" 46 #ifdef HAVE_KOKKOSKERNELS_MKL 48 #endif // HAVE_KOKKOSKERNELS_MKL 58 #ifdef HAVE_KOKKOSKERNELS_MKL 62 transCharToMklEnum (
const char trans)
64 if (trans ==
'T' || trans ==
't') {
67 else if (trans ==
'C' || trans ==
'c' ||
68 trans ==
'H' || trans ==
'h') {
69 return CblasConjTrans;
77 #endif // HAVE_KOKKOSKERNELS_MKL 80 cgemm (
const char transA,
85 const ::Kokkos::complex<float>& alpha,
86 const ::Kokkos::complex<float> A[],
88 const ::Kokkos::complex<float> B[],
90 const ::Kokkos::complex<float>& beta,
91 ::Kokkos::complex<float> C[],
94 #ifdef HAVE_KOKKOSKERNELS_MKL 95 const CBLAS_TRANSPOSE etransA = transCharToMklEnum (transA);
96 const CBLAS_TRANSPOSE etransB = transCharToMklEnum (transB);
99 ::cblas_cgemm (CblasColMajor, etransA, etransB,
104 #else // NOT HAVE_KOKKOSKERNELS_MKL 105 throw std::runtime_error (
"You must enable MKL in your Trilinos build in " 106 "order to invoke MKL functions in Tpetra.");
107 #endif // NOT HAVE_KOKKOSKERNELS_MKL 111 dgemm (
const char transA,
125 #ifdef HAVE_KOKKOSKERNELS_MKL 126 const CBLAS_TRANSPOSE etransA = transCharToMklEnum (transA);
127 const CBLAS_TRANSPOSE etransB = transCharToMklEnum (transB);
128 ::cblas_dgemm (CblasColMajor, etransA, etransB,
133 #else // NOT HAVE_KOKKOSKERNELS_MKL 134 throw std::runtime_error (
"You must enable MKL in your Trilinos build in " 135 "order to invoke MKL functions in Tpetra.");
136 #endif // NOT HAVE_KOKKOSKERNELS_MKL 140 sgemm (
const char transA,
154 #ifdef HAVE_KOKKOSKERNELS_MKL 155 const CBLAS_TRANSPOSE etransA = transCharToMklEnum (transA);
156 const CBLAS_TRANSPOSE etransB = transCharToMklEnum (transB);
157 ::cblas_sgemm (CblasColMajor, etransA, etransB,
162 #else // NOT HAVE_KOKKOSKERNELS_MKL 163 throw std::runtime_error (
"You must enable MKL in your Trilinos build in " 164 "order to invoke MKL functions in Tpetra.");
165 #endif // NOT HAVE_KOKKOSKERNELS_MKL 169 zgemm (
const char transA,
174 const ::Kokkos::complex<double>& alpha,
175 const ::Kokkos::complex<double> A[],
177 const ::Kokkos::complex<double> B[],
179 const ::Kokkos::complex<double>& beta,
180 ::Kokkos::complex<double> C[],
183 #ifdef HAVE_KOKKOSKERNELS_MKL 184 const CBLAS_TRANSPOSE etransA = transCharToMklEnum (transA);
185 const CBLAS_TRANSPOSE etransB = transCharToMklEnum (transB);
188 ::cblas_zgemm (CblasColMajor, etransA, etransB,
193 #else // NOT HAVE_KOKKOSKERNELS_MKL 194 throw std::runtime_error (
"You must enable MKL in your Trilinos build in " 195 "order to invoke MKL functions in Tpetra.");
196 #endif // NOT HAVE_KOKKOSKERNELS_MKL Namespace Tpetra contains the class and methods constituting the Tpetra library.
Implementation details of Tpetra.
Implementation detail of Tpetra::MultiVector.