18 typedef std::map<std::type_info const*, MPI_Op, type_info_compare> stored_map_type;
29 for (stored_map_type::iterator
it=map.begin();
it != map.end(); ++
it)
41 stored_map_type::iterator
pos = map.find(t);
51 if (map.find(t) != map.end()) map.erase(t);
52 map.insert(std::make_pair(t,
datatype));
67template <
typename Op,
typename T,
typename Enable =
void>
75 for (
int i = 0; i < *
len; i++)
82 std::type_info
const* t = &
typeid(
Op);
92 std::cout <<
"Creating a new MPI Op for " << t->name() << std::endl;
MPI_Op get(const std::type_info *t)
void set(const std::type_info *t, MPI_Op datatype)
static void funcmpi(void *invec, void *inoutvec, int *len, MPI_Datatype *datatype)
Compute the bitwise AND of two integral values.
Compute the bitwise OR of two integral values.
Compute the bitwise exclusive OR of two integral values.
Compute the logical exclusive OR of two integral values.
Compute the maximum of two values.
Compute the minimum of two values.