38 #ifndef NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_NEK_MATRIX_FWD_HPP
39 #define NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_NEK_MATRIX_FWD_HPP
45 #include <boost/shared_ptr.hpp>
46 #include <boost/type_traits.hpp>
48 #include <boost/typeof/typeof.hpp>
49 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
53 template<
typename DataType>
56 template<
typename DataType>
59 template<
typename DataType,
typename MatType = StandardMatrixTag>
62 template<
typename DataType,
typename InnerMatrixType>
65 template<
typename DataType,
typename InnerMatrixType>
68 template<
typename DataType>
69 class NekMatrix<DataType, StandardMatrixTag>;
79 #ifdef NEKTAR_USE_EXPRESSION_TEMPLATES
81 struct IsMatrix :
public boost::false_type {};
83 template<
typename DataType,
typename MatrixType>
84 struct IsMatrix<NekMatrix<DataType,
MatrixType> > :
public boost::true_type {};
86 template<
typename DataType>
87 struct IsMatrix<ConstMatrix<DataType> > :
public boost::true_type {};
89 template<
typename DataType>
90 struct IsMatrix<Matrix<DataType> > :
public boost::true_type {};
95 #endif //NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_NEK_MATRIX_FWD_HPP
BOOST_TYPEOF_REGISTER_TEMPLATE(NekMatrix, 2)
boost::shared_ptr< DNekScalMat > DNekScalMatSharedPtr
boost::shared_ptr< NekMatrix< NekDouble, StandardMatrixTag > > SharedNekMatrixPtr
NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > DNekScalMat