9 void Communicator::send(
const T& buf,
int count,
int dest,
int tag) {
10 this->send(&buf, count, dest, tag);
14 void Communicator::send(
const T* buf,
int count,
int dest,
int tag) {
15 MPI_Datatype type = get_mpi_datatype<T>(*buf);
17 MPI_Send(buf, count, type, dest, tag, *comm_m);
21 void Communicator::recv(T& output,
int count,
int source,
int tag, Status& status) {
22 this->recv(&output, count, source, tag, status);
26 void Communicator::recv(T* output,
int count,
int source,
int tag, Status& status) {
27 MPI_Datatype type = get_mpi_datatype<T>(*output);
29 MPI_Recv(output, count, type, source, tag, *comm_m, status);
37 void Communicator::isend(
const T& buffer,
int count,
int dest,
int tag, Request& request) {
38 this->isend(&buffer, count, dest, tag, request);
42 void Communicator::isend(
const T* buffer,
int count,
int dest,
int tag, Request& request) {
43 MPI_Datatype type = get_mpi_datatype<T>(*buffer);
45 MPI_Isend(buffer, count, type, dest, tag, comm_m, request);
49 void Communicator::irecv(T& buffer,
int count,
int source,
int tag, Request& request) {
50 this->irecv(&buffer, count, source, tag, request);
54 void Communicator::irecv(T* buffer,
int count,
int source,
int tag, Request& request) {
55 MPI_Datatype type = get_mpi_datatype<T>(*buffer);
57 MPI_Irecv(buffer, count, type, source, tag, *comm_m, request);