vector_slice<VectorType> project(viennacl::vector_slice<VectorType> & vec, viennacl::range const & r1) { assert(r1.size() <= vec.size() && bool("Size of slice larger than vector proxy!")); return vector_slice<VectorType>(vec, viennacl::slice(vec.start() + r1.start(), vec.stride(), r1.size())); }
vcl_size_t internal_size(viennacl::vector_slice<VectorType> const & vec) { return vec.get().internal_size(); }
typename result_of::size_type<VectorType>::type stride(viennacl::vector_slice<VectorType> const & s) { return s.stride(); }
typename result_of::size_type<VectorType>::type internal_size(viennacl::vector_slice<VectorType> const & vec) { return vec.get().internal_size(); }
vector_slice<VectorType> project(viennacl::vector_slice<VectorType> const & vec, viennacl::slice const & s1) { assert(s1.size() <= vec.size() && bool("Size of slice larger than vector proxy!")); return vector_slice<VectorType>(vec, s1); }