28#ifndef REMORA_KERNELS_VECTOR_ASSIGN_HPP
29#define REMORA_KERNELS_VECTOR_ASSIGN_HPP
31#include "../detail/traits.hpp"
37namespace remora{
namespace kernels {
40template<
class V,
class F,
class Device>
41void apply(vector_expression<V, Device>& v,F
const& f) {
44template<
class F,
class V,
class Device>
45void assign(vector_expression<V, Device>& v,
typename V::value_type t) {
46 bindings::assign<F>(v,t);
54template<
class V,
class E,
class Device>
55void assign(vector_expression<V, Device>& v, vector_expression<E, Device>
const& e) {
56 REMORA_SIZE_CHECK(v().size() == e().size());
57 typedef typename V::evaluation_category::tag TagV;
58 typedef typename E::evaluation_category::tag TagE;
59 bindings::vector_assign(v, e,TagV(),TagE());
68template<
class F,
class V,
class E,
class Device>
69void assign(vector_expression<V, Device>& v, vector_expression<E, Device>
const& e, F f) {
70 REMORA_SIZE_CHECK(v().size() == e().size());
71 typedef typename V::evaluation_category::tag TagV;
72 typedef typename E::evaluation_category::tag TagE;
73 bindings::vector_assign_functor(v(), e(), f, TagV(),TagE());