27 #ifndef MPBLOCKS_CUDA_LINALG_PRODUCT_H_
28 #define MPBLOCKS_CUDA_LINALG_PRODUCT_H_
35 template <
typename Scalar,
class Exp1,
class Exp2>
37 public RValue<Scalar, Product<Scalar,Exp1,Exp2> >
57 return (
m_A.rows() *
m_B.cols() );
86 for(
int k=0; k <
m_A.cols(); k++ )
93 template <
typename Scalar,
class Exp1,
class Exp2>
99 return Product_t( static_cast< Exp1 const& >(A),
100 static_cast< Exp2 const& >(B) );
__device__ __host__ Size_t cols() const
return the columns of a matrix expression
__device__ __host__ Scalar operator()(Size_t i, Size_t j) const
return the evaluated (i,j)'th element of a matrix expression
__device__ __host__ Size_t size() const
return the size for a vector
__device__ __host__ Product< Scalar, Exp1, Exp2 > operator*(RValue< Scalar, Exp1 > const &A, RValue< Scalar, Exp2 > const &B)
__device__ __host__ Size_t rows() const
return the rows of a matrix expression
__device__ __host__ Scalar operator[](Size_t i) const
return the evaluated i'th element of a vector expression
expression template for product of two matrix expressions
expression template for rvalues
__device__ __host__ Product(Exp1 const &A, Exp2 const &B)