1 #ifndef VIENNACL_META_TAGOF_HPP_ 
    2 #define VIENNACL_META_TAGOF_HPP_ 
   31 #ifdef VIENNACL_WITH_UBLAS 
   32 #include <boost/numeric/ublas/matrix_sparse.hpp> 
   33 #include <boost/numeric/ublas/matrix.hpp> 
   34 #include <boost/numeric/ublas/vector.hpp> 
   37 #ifdef VIENNACL_WITH_ARMADILLO 
   41 #ifdef VIENNACL_WITH_EIGEN 
   43 #include <Eigen/Sparse> 
   46 #ifdef VIENNACL_WITH_MTL4 
   47 #include <boost/numeric/mtl/mtl.hpp> 
   83   template< 
typename T, 
typename Active = 
void >
 
   87   template< 
typename Sequence, 
typename Active >
 
   93 #ifdef VIENNACL_WITH_MTL4 
   97   template<
typename ScalarType>
 
   98   struct tag_of< mtl::dense_vector<ScalarType> >
 
  103   template<
typename ScalarType>
 
  104   struct tag_of< mtl::compressed2D<ScalarType> >
 
  109   template<
typename ScalarType, 
typename T>
 
  110   struct tag_of< mtl::dense2D<ScalarType, T> >
 
  117 #ifdef VIENNACL_WITH_EIGEN 
  122   struct tag_of< Eigen::VectorXf >
 
  128   struct tag_of< Eigen::VectorXd >
 
  134   struct tag_of< Eigen::MatrixXf >
 
  140   struct tag_of< Eigen::MatrixXd >
 
  145   template<
typename ScalarType, 
int option>
 
  146   struct tag_of< Eigen::SparseMatrix<ScalarType, option> >
 
  153 #ifdef VIENNACL_WITH_UBLAS 
  157   template< 
typename T >
 
  158   struct tag_of< boost::numeric::ublas::vector<T> >
 
  163   template< 
typename T >
 
  164   struct tag_of< boost::numeric::ublas::matrix<T> >
 
  169   template< 
typename T1, 
typename T2 >
 
  170   struct tag_of< boost::numeric::ublas::matrix_unary2<T1,T2> >
 
  175   template< 
typename T1, 
typename T2 >
 
  176   struct tag_of< boost::numeric::ublas::compressed_matrix<T1,T2> >
 
  188   template< 
typename T, 
typename A >
 
  189   struct tag_of< std::vector<T, A> >
 
  195   template< 
typename T, 
typename A >
 
  196   struct tag_of< std::vector<std::vector<T, A>, A> >
 
  202   template< 
typename KEY, 
typename DATA, 
typename COMPARE, 
typename AMAP, 
typename AVEC>
 
  203   struct tag_of< std::vector<std::map<KEY, DATA, COMPARE, AMAP>, AVEC> >
 
  212   template< 
typename T, 
unsigned int alignment >
 
  213   struct tag_of< viennacl::vector<T, alignment> >
 
  218   template< 
typename T, 
typename F, 
unsigned int alignment >
 
  219   struct tag_of< viennacl::matrix<T, F, alignment> >
 
  224   template< 
typename T1, 
typename T2, 
typename OP >
 
  225   struct tag_of< viennacl::matrix_expression<T1,T2,OP> >
 
  230   template< 
typename T >
 
  231   struct tag_of< viennacl::matrix_range<T> >
 
  236   template< 
typename T, 
unsigned int I>
 
  237   struct tag_of< viennacl::compressed_matrix<T,I> >
 
  242   template< 
typename T, 
unsigned int I>
 
  243   struct tag_of< viennacl::coordinate_matrix<T,I> >
 
  248   template< 
typename T, 
unsigned int I>
 
  249   struct tag_of< viennacl::ell_matrix<T,I> >
 
  254   template< 
typename T, 
typename I>
 
  255   struct tag_of< viennacl::sliced_ell_matrix<T,I> >
 
  261   template< 
typename T, 
unsigned int I>
 
  262   struct tag_of< viennacl::hyb_matrix<T,I> >
 
  267   template< 
typename T, 
unsigned int I>
 
  268   struct tag_of< viennacl::circulant_matrix<T,I> >
 
  273   template< 
typename T, 
unsigned int I>
 
  274   struct tag_of< viennacl::hankel_matrix<T,I> >
 
  279   template< 
typename T, 
unsigned int I>
 
  280   struct tag_of< viennacl::toeplitz_matrix<T,I> >
 
  285   template< 
typename T, 
unsigned int I>
 
  286   struct tag_of< viennacl::vandermonde_matrix<T,I> >
 
  300 template<
typename Tag>
 
  308 struct is_mtl4< viennacl::tag_mtl4 >
 
  310   enum { 
value = 
true };
 
  318 template<
typename Tag>
 
  326 struct is_eigen< viennacl::tag_eigen >
 
  328   enum { 
value = 
true };
 
  337 template<
typename Tag>
 
  345 struct is_ublas< viennacl::tag_ublas >
 
  347   enum { 
value = 
true };
 
  355 template<
typename Tag>
 
  363 struct is_stl< viennacl::tag_stl >
 
  365   enum { 
value = 
true };
 
  374 template<
typename Tag>
 
  382 struct is_viennacl< viennacl::tag_viennacl >
 
  384   enum { 
value = 
true };
 
Meta function which checks whether a tag is tag_mtl4. 
Generic base for wrapping other linear algebra packages. 
Meta function which checks whether a tag is tag_ublas. 
Meta function which checks whether a tag is tag_ublas. 
A tag class for identifying 'unknown' types. 
This file provides the forward declarations for the main types used within ViennaCL. 
A tag class for identifying types from uBLAS. 
Meta function which checks whether a tag is tag_viennacl. 
A tag class for identifying types from ViennaCL. 
A tag class for identifying types from the C++ STL. 
A tag class for identifying types from Eigen. 
A tag class for identifying types from MTL4. 
Meta function which checks whether a tag is tag_eigen.