#endif
typedef enum {MPIM_SHORT, MPIM_INT, MPIM_LONG, MPIM_UNSIGNED_SHORT,
#endif
typedef enum {MPIM_SHORT, MPIM_INT, MPIM_LONG, MPIM_UNSIGNED_SHORT,
- MPIM_UNSIGNED, MPIM_UNSIGNED_LONG, MPIM_FLOAT,
+ MPIM_UNSIGNED, MPIM_UNSIGNED_LONG, MPIM_UNSIGNED_LONG_LONG, MPIM_FLOAT,
MPIM_DOUBLE, MPIM_BYTE} MPIM_Datatype;
typedef enum {MPIM_MAX, MPIM_MIN, MPIM_SUM, MPIM_PROD,
MPIM_DOUBLE, MPIM_BYTE} MPIM_Datatype;
typedef enum {MPIM_MAX, MPIM_MIN, MPIM_SUM, MPIM_PROD,
MPI_I_DO_OP_C_INTEGER( MPI_I_do_op_ushort, unsigned short)
MPI_I_DO_OP_C_INTEGER( MPI_I_do_op_uint, unsigned int)
MPI_I_DO_OP_C_INTEGER( MPI_I_do_op_ulong, unsigned long)
MPI_I_DO_OP_C_INTEGER( MPI_I_do_op_ushort, unsigned short)
MPI_I_DO_OP_C_INTEGER( MPI_I_do_op_uint, unsigned int)
MPI_I_DO_OP_C_INTEGER( MPI_I_do_op_ulong, unsigned long)
MPI_I_DO_OP_FP( MPI_I_do_op_float, float)
MPI_I_DO_OP_FP( MPI_I_do_op_double, double)
MPI_I_DO_OP_BYTE( MPI_I_do_op_byte, char)
MPI_I_DO_OP_FP( MPI_I_do_op_float, float)
MPI_I_DO_OP_FP( MPI_I_do_op_double, double)
MPI_I_DO_OP_BYTE( MPI_I_do_op_byte, char)
MPI_I_DO_OP_CALL(MPI_I_do_op_uint, unsigned int)
case MPIM_UNSIGNED_LONG:
MPI_I_DO_OP_CALL(MPI_I_do_op_ulong, unsigned long)
MPI_I_DO_OP_CALL(MPI_I_do_op_uint, unsigned int)
case MPIM_UNSIGNED_LONG:
MPI_I_DO_OP_CALL(MPI_I_do_op_ulong, unsigned long)
case MPIM_FLOAT : MPI_I_DO_OP_CALL(MPI_I_do_op_float, float)
case MPIM_DOUBLE: MPI_I_DO_OP_CALL(MPI_I_do_op_double, double)
case MPIM_BYTE : MPI_I_DO_OP_CALL(MPI_I_do_op_byte, char)
case MPIM_FLOAT : MPI_I_DO_OP_CALL(MPI_I_do_op_float, float)
case MPIM_DOUBLE: MPI_I_DO_OP_CALL(MPI_I_do_op_double, double)
case MPIM_BYTE : MPI_I_DO_OP_CALL(MPI_I_do_op_byte, char)
else if(mpi_datatype==MPI_UNSIGNED_SHORT) datatype=MPIM_UNSIGNED_SHORT;
else if(mpi_datatype==MPI_UNSIGNED ) datatype=MPIM_UNSIGNED;
else if(mpi_datatype==MPI_UNSIGNED_LONG ) datatype=MPIM_UNSIGNED_LONG;
else if(mpi_datatype==MPI_UNSIGNED_SHORT) datatype=MPIM_UNSIGNED_SHORT;
else if(mpi_datatype==MPI_UNSIGNED ) datatype=MPIM_UNSIGNED;
else if(mpi_datatype==MPI_UNSIGNED_LONG ) datatype=MPIM_UNSIGNED_LONG;
else if(mpi_datatype==MPI_FLOAT ) datatype=MPIM_FLOAT;
else if(mpi_datatype==MPI_DOUBLE ) datatype=MPIM_DOUBLE;
else if(mpi_datatype==MPI_BYTE ) datatype=MPIM_BYTE;
else if(mpi_datatype==MPI_FLOAT ) datatype=MPIM_FLOAT;
else if(mpi_datatype==MPI_DOUBLE ) datatype=MPIM_DOUBLE;
else if(mpi_datatype==MPI_BYTE ) datatype=MPIM_BYTE;
new_prot = count >= Lsh[is_all][ss]; break;
case MPIM_INT: case MPIM_UNSIGNED:
new_prot = count >= Lin[is_all][ss]; break;
new_prot = count >= Lsh[is_all][ss]; break;
case MPIM_INT: case MPIM_UNSIGNED:
new_prot = count >= Lin[is_all][ss]; break;