00001 #ifndef SGV_FLAT_H_
00002 #define SGV_FLAT_H_
00003
00004 #include <mpi.h>
00005 #include <stddef.h>
00006
00007 #ifdef __cplusplus
00008 extern "C" {
00009 #endif
00010
00012 typedef struct MPIB_SGv_sorter {
00019 void (*sort)(void* _this, const int size, const int* counts, size_t* indices);
00020 } MPIB_SGv_sorter;
00021
00023 int MPIB_Scatterv_sorted_flat(MPIB_SGv_sorter* sorter,
00024 void* sendbuf, int* sendcounts, int* displs, MPI_Datatype sendtype,
00025 void* recvbuf, int recvcount, MPI_Datatype recvtype,
00026 int root, MPI_Comm comm);
00027
00029 int MPIB_Gatherv_sorted_flat(MPIB_SGv_sorter* sorter,
00030 void* sendbuf, int sendcount, MPI_Datatype sendtype,
00031 void* recvbuf, int* recvcounts, int* displs, MPI_Datatype recvtype,
00032 int root, MPI_Comm comm);
00033
00034 #ifdef __cplusplus
00035 }
00036 #endif
00037
00038 #endif