OpenFPM_pdata  1.1.0
Project that contain the implementation of distributed structures
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Friends Pages
memory_conf.hpp
1 /*
2  * memory_conf.hpp
3  *
4  * Created on: Aug 28, 2014
5  * Author: Pietro Incardona
6  */
7 
8 #ifndef MEMORY_CONF_HPP_
9 #define MEMORY_CONF_HPP_
10 
11 #include "util/variadic_to_vmpl.hpp"
12 #include "t_to_memory_c.hpp"
13 #include "Vector/vect_isel.hpp"
14 
32 template<typename Seq>
33 struct inter_memc
34 {
35  typedef typename v_transform<t_to_memory_c,Seq>::type type;
36 };
37 
51 template<typename T>
53 {
55  typedef typename inter_memc<typename T::type>::type type;
56 
57  typedef int yes_is_inte;
58 };
59 
64 template<typename T, bool is_agg>
66 {
68 };
69 
74 template<typename T>
75 struct memory_traits_lin_type<T,false>
76 {
77  typedef void type;
78 };
79 
92 template<typename T>
94 {
97 
98  typedef int yes_is_tlin;
99 };
100 
101 
103 
104 template<typename T, typename Sfinae = void>
105 struct is_layout_mlin: std::false_type {};
106 
107 
117 template<typename T>
118 struct is_layout_mlin<T, typename Void< typename T::yes_is_tlin>::type> : std::true_type
119 {};
120 
121 
122 template<typename T, typename Sfinae = void>
123 struct is_layout_inte: std::false_type {};
124 
125 
135 template<typename T>
136 struct is_layout_inte<T, typename Void< typename T::yes_is_inte>::type> : std::true_type
137 {};
138 
139 #endif
Transform the boost::fusion::vector into memory specification (memory_traits)
Definition: memory_conf.hpp:93
small meta-function to get the type of the memory
Definition: memory_conf.hpp:65
v_transform_impl< H, first, last, exit_::value >::type type
generate the boost::fusion::vector apply H on each term
memory_traits_lin_type< T, openfpm::vect_isel< T >::value==OPENFPM_NATIVE >::type type
for each element in the vector interleave memory_c
Definition: memory_conf.hpp:96
Transform the boost::fusion::vector into memory specification (memory_traits)
Definition: memory_conf.hpp:52
inter_memc< typename T::type >::type type
for each element in the vector interleave memory_c
Definition: memory_conf.hpp:55
This class convert a boost::mpl::fusion/vector to a boost::mpl::fusion/vector with memory_c interleav...
Definition: memory_conf.hpp:33
Void structure.
Definition: common.hpp:63
This class is a container for the memory interface like HeapMemory CudaMemory.
Definition: memory_c.hpp:31