Transform the boost::fusion::vector into memory specification (memory_traits)
More...
template<typename T>
struct memory_traits_lin< T >
Transform the boost::fusion::vector into memory specification (memory_traits)
Transform the boost::fusion::vector into memory specification (memory_traits). In this implementation we create a buffer of base type with memory_c
We basically create a buffer for each property
- Parameters
-
T | base type (T::type must define a boost::fusion::vector ) |
Definition at line 242 of file memory_conf.hpp.
|
template<unsigned int p, typename data_type , typename g1_type , typename key_type , typename std::enable_if<!std::is_same< data_type, memory_c< boost::fusion::vector<>, 1, memory > >::value, int >::type = 0> |
__host__ static __device__ auto | get (data_type &data_, const g1_type &g1, const key_type &v1) -> decltype(boost::fusion::at_c< p >(data_.mem_r.operator[](g1.LinId(v1)))) & |
| Return a reference to the selected element SFINAE is used to hande CSR graphs, where boost::fusion::at_c.
|
|
template<unsigned int p, typename data_type , typename g1_type , typename key_type , typename std::enable_if< std::is_same< data_type, memory_c< boost::fusion::vector<>, 1, memory > >::value, int >::type = 0> |
__host__ static __device__ void | get (data_type &data_, const g1_type &g1, const key_type &v1) |
| Return a reference to the selected element. SFINAE is used to hande CSR graphs, where boost::fusion::at_c.
|
|
template<unsigned int p, typename data_type , typename g1_type , typename std::enable_if<!std::is_same< data_type, memory_c< boost::fusion::vector<>, 1, memory > >::value, int >::type = 0> |
__host__ static __device__ auto | get_lin (data_type &data_, const g1_type &g1, const size_t lin_id) -> decltype(boost::fusion::at_c< p >(data_.mem_r.operator[](lin_id))) & |
| Return a reference to the selected element SFINAE is used to hande CSR graphs, where boost::fusion::at_c.
|
|
template<unsigned int p, typename data_type , typename g1_type , typename std::enable_if< std::is_same< data_type, memory_c< boost::fusion::vector<>, 1, memory > >::value, int >::type = 0> |
__host__ static __device__ auto | get_lin (data_type &data_, const g1_type &g1, const size_t lin_id) |
| Return a reference to the selected element SFINAE is used to hande CSR graphs, where boost::fusion::at_c.
|
|
template<unsigned int p, typename data_type , typename g1_type , typename key_type , typename std::enable_if<!std::is_same< data_type, memory_c< boost::fusion::vector<>, 1, memory > >::value, int >::type = 0> |
__host__ static __device__ auto | get_c (const data_type &data_, const g1_type &g1, const key_type &v1) -> decltype(boost::fusion::at_c< p >(data_.mem_r.operator[](g1.LinId(v1)))) & |
| Return a reference to the selected element.
|
|
template<unsigned int p, typename data_type , typename g1_type > |
__host__ static __device__ auto | get_lin_c (const data_type &data_, const g1_type &g1, const size_t lin_id) -> decltype(boost::fusion::at_c< p >(data_.mem_r.operator[](lin_id))) & |
| Return a reference to the selected element.
|
|
template<typename S , typename data_type , unsigned int ... prp> |
static void | hostToDevice (data_type &data_, size_t start, size_t stop) |
| Copy the memory from host to device.
|
|
template<typename data_type , unsigned int ... prp> |
static void | deviceToHost (data_type &data_, size_t start, size_t stop) |
| Synchronize the memory buffer in the device with the memory in the host.
|
|