PABLO  0.1
PArallel Balanced Linear Octree
 All Classes Functions Variables Pages
mpi_datatype_conversion.hpp
1 #if NOMPI==0
2 #ifndef MPI_DATATYPE_CONVERSION_HPP_
3 #define MPI_DATATYPE_CONVERSION_HPP_
4 
5 #include <mpi.h>
6 #include <stdint.h>
7 
8 template <class T>
9 MPI_Datatype convert();
10 
11 template <>
12 inline MPI_Datatype convert<char>(){return MPI::CHAR;}
13 
14 template <>
15 inline MPI_Datatype convert<int>(){return MPI::INT;}
16 
17 template <>
18 inline MPI_Datatype convert<short>(){return MPI::SHORT;}
19 
20 template <>
21 inline MPI_Datatype convert<long>(){return MPI::LONG;}
22 
23 template <>
24 inline MPI_Datatype convert<unsigned int>(){return MPI::UNSIGNED;}
25 
26 template <>
27 inline MPI_Datatype convert<unsigned short>(){return MPI::UNSIGNED_SHORT;}
28 
29 template <>
30 inline MPI_Datatype convert<unsigned long>(){return MPI::UNSIGNED_LONG;}
31 
32 template <>
33 inline MPI_Datatype convert<double>(){return MPI::DOUBLE;}
34 
35 template <>
36 inline MPI_Datatype convert<float>(){return MPI::FLOAT;}
37 
38 template <>
39 inline MPI_Datatype convert<long double>(){return MPI::LONG_DOUBLE;}
40 
41 template <>
42 inline MPI_Datatype convert<bool>(){return MPI::BOOL;}
43 
44 template <>
45 inline MPI_Datatype convert<uint8_t>(){return MPI_UINT8_T;}
46 
47 template <>
48 inline MPI_Datatype convert<int8_t>(){return MPI_INT8_T;}
49 
50 #endif /* MPI_DATATYPE_CONVERSION_HPP_ */
51 #endif /* NOMPI */