mgcpp
A C++ Math Library Based on CUDA
Namespaces | Enumerations | Functions
gemm.hpp File Reference
#include <mgcpp/matrix/dense_matrix.hpp>
#include <mgcpp/matrix/device_matrix.hpp>
#include <mgcpp/type_traits/is_scalar.hpp>
#include <cstdlib>
#include <mgcpp/operations/gemm.tpp>
Include dependency graph for gemm.hpp:

Go to the source code of this file.

Namespaces

 mgcpp
 
 mgcpp::strict
 

Enumerations

enum  mgcpp::strict::trans_mode { mgcpp::strict::trans_mode::same = CUBLAS_OP_N, mgcpp::strict::trans_mode::transposed = CUBLAS_OP_T, mgcpp::strict::trans_mode::conj_trans = CUBLAS_OP_C }
 

Functions

template<typename ADense , typename BDense , typename CDense , typename Type >
decltype(auto) mgcpp::strict::gemm (dense_matrix< ADense, Type > const &A, dense_matrix< BDense, Type > const &B, dense_matrix< CDense, Type > const &C)
 
template<typename ADense , typename BDense , typename CDense , typename Type , typename ScalarAlpha , typename ScalarBeta , typename = typename std::enable_if<is_scalar<ScalarAlpha>::value && is_scalar<ScalarBeta>::value>::type>
decltype(auto) mgcpp::strict::gemm (ScalarAlpha alpha, dense_matrix< ADense, Type > const &A, dense_matrix< BDense, Type > const &B, ScalarBeta beta, dense_matrix< CDense, Type > const &C)
 
template<typename ADense , typename BDense , typename CDense , typename Type , typename ScalarAlpha , typename ScalarBeta , typename = typename std::enable_if<is_scalar<ScalarAlpha>::value && is_scalar<ScalarBeta>::value>::type>
decltype(auto) mgcpp::strict::gemm (ScalarAlpha alpha, dense_matrix< ADense, Type > const &A, dense_matrix< BDense, Type > const &B, ScalarBeta beta, dense_matrix< CDense, Type > &&C)
 
template<typename ADense , typename BDense , typename CDense , typename Type , typename ScalarAlpha , typename ScalarBeta , typename = typename std::enable_if<is_scalar<ScalarAlpha>::value && is_scalar<ScalarBeta>::value>::type>
decltype(auto) mgcpp::strict::gemm (ScalarAlpha alpha, trans_mode mode_A, trans_mode mode_B, dense_matrix< ADense, Type > const &A, dense_matrix< BDense, Type > const &B, ScalarBeta beta, dense_matrix< CDense, Type > const &C)
 
template<typename ADense , typename BDense , typename CDense , typename Type , typename ScalarAlpha , typename ScalarBeta , typename = typename std::enable_if<is_scalar<ScalarAlpha>::value && is_scalar<ScalarBeta>::value>::type>
decltype(auto) mgcpp::strict::gemm (ScalarAlpha alpha, trans_mode mode_A, trans_mode mode_B, dense_matrix< ADense, Type > const &A, dense_matrix< BDense, Type > const &B, ScalarBeta beta, dense_matrix< CDense, Type > &&C)