28 #ifndef REMORA_KERNELS_VECTOR_ASSIGN_HPP 29 #define REMORA_KERNELS_VECTOR_ASSIGN_HPP 31 #include "../detail/traits.hpp" 37 namespace remora{
namespace kernels {
39 template<
class F,
class V,
class Device>
40 void assign(vector_expression<V, Device>& v,
typename V::value_type t) {
41 bindings::assign<F>(v,t);
49 template<
class V,
class E,
class Device>
50 void assign(vector_expression<V, Device>& v,
const vector_expression<E, Device> &e) {
51 REMORA_SIZE_CHECK(v().size() == e().size());
52 typedef typename V::evaluation_category::tag TagV;
53 typedef typename E::evaluation_category::tag TagE;
54 bindings::vector_assign(v, e, TagV(),TagE());
63 template<
class F,
class V,
class E,
class Device>
64 void assign(vector_expression<V, Device>& v,
const vector_expression<E, Device> &e, F f=F()) {
65 REMORA_SIZE_CHECK(v().size() == e().size());
66 typedef typename V::evaluation_category::tag TagV;
67 typedef typename E::evaluation_category::tag TagE;
68 bindings::vector_assign_functor(v(), e(), f, TagV(),TagE());