22class DeviceVector :
public thrust::device_vector<T, thrust::device_allocator<T>>
25 using Base = thrust::device_vector<T, thrust::device_allocator<T>>;
27 using Base::operator=;
29 auto view() MUDA_NOEXCEPT {
return BufferView<T>{raw_ptr(), Base::size()}; }
31 auto view()
const MUDA_NOEXCEPT
36 operator BufferView<T>()
const MUDA_NOEXCEPT {
return view(); }
41 this->resize(v.size());
46 void copy_to(std::vector<T>& v)
const
48 v.resize(this->size());
49 view().copy_to(v.data());
52 auto viewer() MUDA_NOEXCEPT
54 return Dense1D<T>(raw_ptr(),
static_cast<int>(this->size()));
57 auto cviewer()
const MUDA_NOEXCEPT
59 return CDense1D<T>(raw_ptr(),
static_cast<int>(this->size()));
63 T* raw_ptr() {
return thrust::raw_pointer_cast(Base::data()); }
64 const T* raw_ptr()
const {
return thrust::raw_pointer_cast(Base::data()); }