typename viennacl::enable_if< viennacl::is_stl< typename viennacl::traits::tag_of< VectorT1 >::type >::value,
                               typename VectorT1::value_type>::type
 inner_prod(VectorT1 const& v1, VectorT2 const& v2)
 {
   assert(v1.size() == v2.size() && bool("Vector sizes mismatch"));
   //std::cout << "stl .. " << std::endl;
   typename VectorT1::value_type result = 0;
   for (typename VectorT1::size_type i=0; i<v1.size(); ++i)
     result += v1[i] * v2[i];
   
   return result;
 }
 typename viennacl::enable_if< viennacl::is_eigen< typename viennacl::traits::tag_of< VectorT1 >::type >::value,
                               typename VectorT1::RealScalar>::type
 inner_prod(VectorT1 const& v1, VectorT2 const& v2)
 {
   //std::cout << "eigen .. " << std::endl;
   return v1.dot(v2);
 }
Exemple #3
0
 void copy_vec_to_vec(VectorT1 const & src, VectorT2 & dest)
 {
   for (vcl_size_t i=0; i<src.size(); ++i)
     dest[i] = src[i];
 }