mgcpp
A C++ Math Library Based on CUDA
mult.hpp
Go to the documentation of this file.
1 
2 // Copyright RedPortal, mujjingun 2017 - 2018.
3 // Distributed under the Boost Software License, Version 1.0.
4 // (See accompanying file LICENSE or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
6 
7 #ifndef _MGCPP_OPERATIONS_MULTIPLICATION_HPP_
8 #define _MGCPP_OPERATIONS_MULTIPLICATION_HPP_
9 
15 
16 #include <cstdlib>
17 
18 namespace mgcpp {
19 namespace strict {
26 template <typename LhsDenseMat, typename RhsDenseMat, typename Type>
27 inline decltype(auto) mult(dense_matrix<LhsDenseMat, Type> const& lhs,
28  dense_matrix<RhsDenseMat, Type> const& rhs);
29 
30 // template<typename LhsDenseVec,
31 // typename RhsDenseVec,
32 // typename Type,
33 // size_t Device,
34 // alignment Align>
35 // inline device_vector<Type, Device, Align,
36 // typename LhsDenseVec::allocator_type>
37 // mult(dense_vector<LhsDenseVec, Type, Device, Align> const& first,
38 // dense_vector<RhsDenseVec, Type, Device, Align> const& second);
39 
48 template <typename DenseMat, typename DenseVec, typename Type>
49 inline decltype(auto) mult(dense_matrix<DenseMat, Type> const& mat,
50  dense_vector<DenseVec, Type> const& vec);
51 
58 template <
59  typename DenseVec,
60  typename ScalarType,
61  typename VectorType,
62  typename = typename std::enable_if<is_scalar<ScalarType>::value>::type>
63 inline decltype(auto) mult(ScalarType scalar,
64  dense_vector<DenseVec, VectorType> const& vec);
65 
72 template <
73  typename DenseMat,
74  typename MatrixType,
75  typename ScalarType,
76  typename = typename std::enable_if<is_scalar<ScalarType>::value>::type>
77 inline decltype(auto) mult(ScalarType scalar,
78  dense_matrix<DenseMat, MatrixType> const& mat);
79 
80 // template<typename T, size_t Device, storage_order SO>
81 // void
82 // mult_assign(gpu::matrix<T, Device, SO>& first,
83 // gpu::matrix<T, Device, SO> const& second);
84 } // namespace strict
85 } // namespace mgcpp
86 
87 #include <mgcpp/operations/mult.tpp>
88 #endif
Definition: adapter_base.hpp:12
Definition: shape.hpp:33
decltype(auto) mult(dense_matrix< LhsDenseMat, Type > const &lhs, dense_matrix< RhsDenseMat, Type > const &rhs)