APPLY_OP_LOOP(MPI_UNSIGNED_LONG, unsigned long,op)\
APPLY_OP_LOOP(MPI_UNSIGNED_LONG_LONG, unsigned long long,op)\
APPLY_OP_LOOP(MPI_WCHAR, wchar_t,op)\
-APPLY_OP_LOOP(MPI_C_BOOL, bool,op)\
APPLY_OP_LOOP(MPI_BYTE, int8_t,op)\
APPLY_OP_LOOP(MPI_INT8_T, int8_t,op)\
APPLY_OP_LOOP(MPI_INT16_T, int16_t,op)\
APPLY_OP_LOOP(MPI_INTEGER4, int32_t,op)\
APPLY_OP_LOOP(MPI_INTEGER8, int64_t,op)
+#define APPLY_BOOL_OP_LOOP(op)\
+APPLY_OP_LOOP(MPI_C_BOOL, bool,op)
+
#define APPLY_FLOAT_OP_LOOP(op)\
APPLY_OP_LOOP(MPI_FLOAT, float,op)\
APPLY_OP_LOOP(MPI_DOUBLE, double,op)\
static void land_func(void *a, void *b, int *length, MPI_Datatype * datatype)
{
APPLY_BASIC_OP_LOOP(LAND_OP)
+ APPLY_BOOL_OP_LOOP(LAND_OP)
APPLY_END_OP_LOOP(LAND_OP)
}
static void lor_func(void *a, void *b, int *length, MPI_Datatype * datatype)
{
APPLY_BASIC_OP_LOOP(LOR_OP)
+ APPLY_BOOL_OP_LOOP(LOR_OP)
APPLY_END_OP_LOOP(LOR_OP)
}
static void lxor_func(void *a, void *b, int *length, MPI_Datatype * datatype)
{
APPLY_BASIC_OP_LOOP(LXOR_OP)
+ APPLY_BOOL_OP_LOOP(LXOR_OP)
APPLY_END_OP_LOOP(LXOR_OP)
}
static void band_func(void *a, void *b, int *length, MPI_Datatype * datatype)
{
APPLY_BASIC_OP_LOOP(BAND_OP)
+ APPLY_BOOL_OP_LOOP(BAND_OP)
APPLY_END_OP_LOOP(BAND_OP)
}
static void bor_func(void *a, void *b, int *length, MPI_Datatype * datatype)
{
APPLY_BASIC_OP_LOOP(BOR_OP)
+ APPLY_BOOL_OP_LOOP(BOR_OP)
APPLY_END_OP_LOOP(BOR_OP)
}
static void bxor_func(void *a, void *b, int *length, MPI_Datatype * datatype)
{
APPLY_BASIC_OP_LOOP(BXOR_OP)
+ APPLY_BOOL_OP_LOOP(BXOR_OP)
APPLY_END_OP_LOOP(BXOR_OP)
}