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