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>
63 class NekMatrix<NekMatrix<DataType, InnerMatrixType>, ScaledMatrixTag>;
65 template<
typename DataType,
typename InnerMatrixType>
66 class NekMatrix<NekMatrix<DataType, InnerMatrixType>, BlockMatrixTag>;
68 template<
typename DataType>
69 class NekMatrix<DataType, StandardMatrixTag>;
72 typedef NekMatrix<NekMatrix<NekDouble, StandardMatrixTag>, ScaledMatrixTag>
DNekScalMat;
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