#ifndef ToolsMAM #define ToolsMAM 1 #include #include "SparseProduct.h" #include #include "../malleability/MAM.h" typedef struct { int n, initiated; SparseMatrix other_subm; int *recv_vlen; int *array_vptr, *array_vlen, *array_vpos; double *array_vval; MPI_Comm comm; MPI_Request reqs[2]; } user_redist_t; static const user_redist_t empty_user_data = { .n = 0, .initiated = 0, .recv_vlen = NULL, .array_vptr = NULL, .array_vlen = NULL, .array_vpos = NULL, .array_vval = NULL, .comm = MPI_COMM_NULL, }; extern void targets_distribution(mam_user_reconf_t user_reconf, user_redist_t *user_data); //extern void targets_distribution_synch(mam_user_reconf_t user_reconf, user_redist_t *user_data); #endif