char *send_ptr = (char *) send_buff;
char *recv_ptr = (char *) recv_buff;
- unsigned int rank = smpi_comm_rank(comm);
- unsigned int num_procs = smpi_comm_size(comm);
+ unsigned int rank = comm->rank();
+ unsigned int num_procs = comm->size();
if((num_procs&(num_procs-1)))
THROWF(arg_error,0, "allgatherv pair algorithm can't be used with non power of two number of processes ! ");
extent = smpi_datatype_get_extent(send_type);
// local send/recv
- smpi_mpi_sendrecv(send_ptr, send_count, send_type, rank, tag,
+ Request::sendrecv(send_ptr, send_count, send_type, rank, tag,
recv_ptr + recv_disps[rank] * extent,
recv_counts[rank], recv_type, rank, tag, comm, &status);
for (i = 1; i < num_procs; i++) {
src = dst = rank ^ i;
- smpi_mpi_sendrecv(send_ptr, send_count, send_type, dst, tag,
+ Request::sendrecv(send_ptr, send_count, send_type, dst, tag,
recv_ptr + recv_disps[src] * extent, recv_counts[src], recv_type,
src, tag, comm, &status);
}