47 #ifndef XT_EXCHANGER_H 48 #define XT_EXCHANGER_H 107 #endif // XT_EXCHANGER_H void(* s_exchange)(Xt_exchanger, const void *, void *)
base definitions header file
void xt_exchanger_delete(Xt_exchanger)
struct Xt_exchanger_ * Xt_exchanger
redistribution of data, non-public declarations
MPI_Datatype(* get_MPI_Datatype)(Xt_exchanger, int, enum xt_msg_direction)
int(* get_msg_ranks)(Xt_exchanger, enum xt_msg_direction, int **)
Xt_exchanger xt_exchanger_copy(Xt_exchanger orig, MPI_Comm new_comm, int new_tag_offset)
Xt_exchanger(* xt_exchanger_default_constructor)(int nsend, int nrecv, struct Xt_redist_msg *send_msgs, struct Xt_redist_msg *recv_msgs, MPI_Comm comm, int tag_offset)
void xt_exchanger_s_exchange(Xt_exchanger exchanger, const void *src_data, void *dst_data)
Xt_exchanger(* copy)(Xt_exchanger, MPI_Comm, int)
MPI_Datatype xt_exchanger_get_MPI_Datatype(Xt_exchanger exchanger, int rank, enum xt_msg_direction direction)
struct xt_exchanger_vtable * vtable
void xt_exchanger_internal_optimize(size_t n, void *msgs, size_t msg_type_size, MPI_Comm comm)
int xt_exchanger_get_msg_ranks(Xt_exchanger exchanger, enum xt_msg_direction direction, int **ranks)