Transform the boost::fusion::vector into memory specification (memory_traits)
More...
|
| 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. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| 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. More...
|
| |
| 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. 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<typename T >
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 memory_traits_lin< T >::get |
( |
data_type & |
data_, |
|
|
const g1_type & |
g1, |
|
|
const key_type & |
v1 |
|
) |
| |
|
inlinestatic |
Return a reference to the selected element. SFINAE is used to hande CSR graphs, where boost::fusion::at_c.
(boost::fusion::vector<>) breaks in boost 1.8* onwards
- Parameters
-
| data | object from where to take the element |
| g1 | grid information |
| v1 | element id |
- Returns
- a reference to the object selected
Definition at line 278 of file memory_conf.hpp.
template<typename T >
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 memory_traits_lin< T >::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)))) &
|
|
inlinestatic |
Return a reference to the selected element SFINAE is used to hande CSR graphs, where boost::fusion::at_c.
(boost::fusion::vector<>) breaks in boost 1.8* onwards
- Parameters
-
| data | object from where to take the element |
| g1 | grid information |
| v1 | element id |
- Returns
- a reference to the object selected
Definition at line 262 of file memory_conf.hpp.