1 #ifndef VIENNACL_META_TAGOF_HPP_
2 #define VIENNACL_META_TAGOF_HPP_
25 #ifdef VIENNACL_HAVE_UBLAS
26 #include <boost/numeric/ublas/matrix_sparse.hpp>
27 #include <boost/numeric/ublas/matrix.hpp>
28 #include <boost/numeric/ublas/vector.hpp>
31 #ifdef VIENNACL_HAVE_EIGEN
33 #include <Eigen/Sparse>
36 #ifdef VIENNACL_HAVE_MTL4
37 #include <boost/numeric/mtl/mtl.hpp>
67 template<
typename T,
typename Active =
void >
70 template <
typename Sequence,
typename Active >
76 #ifdef VIENNACL_HAVE_MTL4
80 template <
typename ScalarType>
81 struct tag_of< mtl::dense_vector<ScalarType> >
86 template <
typename ScalarType>
87 struct tag_of< mtl::compressed2D<ScalarType> >
92 template <
typename ScalarType,
typename T>
93 struct tag_of< mtl::dense2D<ScalarType, T> >
100 #ifdef VIENNACL_HAVE_EIGEN
105 struct tag_of< Eigen::VectorXf >
111 struct tag_of< Eigen::VectorXd >
117 struct tag_of< Eigen::MatrixXf >
123 struct tag_of< Eigen::MatrixXd >
128 template <
typename ScalarType,
int option>
129 struct tag_of< Eigen::SparseMatrix<ScalarType, option> >
136 #ifdef VIENNACL_HAVE_UBLAS
140 template<
typename T >
141 struct tag_of< boost::numeric::ublas::vector<T> >
146 template<
typename T >
147 struct tag_of< boost::numeric::ublas::matrix<T> >
152 template<
typename T1,
typename T2 >
153 struct tag_of< boost::numeric::ublas::matrix_unary2<T1,T2> >
158 template<
typename T1,
typename T2 >
159 struct tag_of< boost::numeric::ublas::compressed_matrix<T1,T2> >
171 template<
typename T,
typename A >
178 template<
typename T,
typename A >
185 template<
typename KEY,
typename DATA,
typename COMPARE,
typename AMAP,
typename AVEC>
195 template<
typename T,
unsigned int alignment >
201 template<
typename T,
typename F,
unsigned int alignment >
207 template<
typename T1,
typename T2,
typename OP >
213 template<
typename T >
219 template<
typename T,
unsigned int I>
225 template<
typename T,
unsigned int I>
231 template<
typename T,
unsigned int I>
237 template<
typename T,
unsigned int I>
243 template<
typename T,
unsigned int I>
249 template<
typename T,
unsigned int I>
264 template <
typename Tag>
280 template <
typename Tag>
297 template <
typename Tag>
313 template <
typename Tag>
330 template <
typename Tag>