48#ifndef XT_XMAP_DIST_DIR_COMMON_H
49#define XT_XMAP_DIST_DIR_COMMON_H
61#define MIN(a,b) (((a)<(b))?(a):(b))
62#define MAX(a,b) (((a)>(b))?(a):(b))
99 void *restrict send_buffer,
100 size_t send_size_asize,
size_t send_size_entry,
101 int tag,
MPI_Comm comm,
int rank_lim,
102 MPI_Request requests[],
103 const int send_size[rank_lim][send_size_asize]);
125 const struct dist_dir *dst_dist_dir,
126 struct isect **src_dst_intersections,
132 size_t num_intersections,
133 const struct isect *restrict src_dst_intersections,
134 bool isect_idxlist_delete,
135 size_t send_size_asize,
size_t send_size_idx,
136 int (*send_size)[send_size_asize],
137 unsigned char *buffer,
size_t buf_size,
size_t *ofs,
MPI_Comm comm);
struct Xt_com_list entries[]
PPM_DSO_INTERNAL size_t xt_xmap_dist_dir_pack_intersections(enum xt_xmdd_direction target, size_t num_intersections, const struct isect *restrict src_dst_intersections, bool isect_idxlist_delete, size_t send_size_asize, size_t send_size_idx, int(*send_size)[send_size_asize], unsigned char *buffer, size_t buf_size, size_t *ofs, MPI_Comm comm)
PPM_DSO_INTERNAL void xt_xmap_dist_dir_same_rank_merge(struct dist_dir **dist_dir_results)
PPM_DSO_INTERNAL int xt_xmdd_cmp_isect_dst_rank(const void *a_, const void *b_)
PPM_DSO_INTERNAL struct Xt_xmdd_txstat xt_xmap_dist_dir_send_intersections(void *restrict send_buffer, size_t send_size_asize, size_t send_size_entry, int tag, MPI_Comm comm, int rank_lim, MPI_Request requests[], const int send_size[rank_lim][send_size_asize])
initiate sends of packed index lists
PPM_DSO_INTERNAL void xt_xmdd_free_dist_dirs(struct dist_dir_pair dist_dirs)
PPM_DSO_INTERNAL size_t xt_xmap_dist_dir_match_src_dst(const struct dist_dir *src_dist_dir, const struct dist_dir *dst_dist_dir, struct isect **src_dst_intersections, Xt_config config)
PPM_DSO_INTERNAL int xt_xmdd_cmp_isect_src_rank(const void *a_, const void *b_)
PPM_DSO_INTERNAL int xt_com_list_rank_cmp(const void *a_, const void *b_)