44#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
45 template<
typename DATATYPE>
46 void AMPI_Send_fwd(
typename DATATYPE::AdjointType* bufAdjoints,
int bufSize,
int count, DATATYPE* datatype,
int dest,
int tag,
AMPI_Comm comm) {
48 MPI_Send(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), dest, tag, comm);
52#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
53 template<
typename DATATYPE>
56 MPI_Isend(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), dest, tag, comm, &request->
request);
60#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
61 template<
typename DATATYPE>
62 void AMPI_Bsend_fwd(
typename DATATYPE::AdjointType* bufAdjoints,
int bufSize,
int count, DATATYPE* datatype,
int dest,
int tag,
AMPI_Comm comm) {
64 MPI_Bsend(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), dest, tag, comm);
68#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
69 template<
typename DATATYPE>
72 MPI_Ibsend(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), dest, tag, comm, &request->
request);
76#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
77 template<
typename DATATYPE>
78 void AMPI_Ssend_fwd(
typename DATATYPE::AdjointType* bufAdjoints,
int bufSize,
int count, DATATYPE* datatype,
int dest,
int tag,
AMPI_Comm comm) {
80 MPI_Ssend(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), dest, tag, comm);
84#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
85 template<
typename DATATYPE>
88 MPI_Issend(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), dest, tag, comm, &request->
request);
92#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
93 template<
typename DATATYPE>
94 void AMPI_Rsend_fwd(
typename DATATYPE::AdjointType* bufAdjoints,
int bufSize,
int count, DATATYPE* datatype,
int dest,
int tag,
AMPI_Comm comm) {
96 MPI_Rsend(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), dest, tag, comm);
100#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
101 template<
typename DATATYPE>
104 MPI_Irsend(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), dest, tag, comm, &request->
request);
108#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
109 template<
typename DATATYPE>
113 MPI_Recv(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), src, tag, comm, status);
117#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
118 template<
typename DATATYPE>
122 MPI_Mrecv(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), &message->
message, status);
126#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
127 template<
typename DATATYPE>
131 MPI_Irecv(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), src, tag, comm, &request->
request);
135#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
136 template<
typename DATATYPE>
140 MPI_Imrecv(bufAdjoints, bufSize, datatype->getADTool().getAdjointMpiType(), &message->
message, &request->
request);
144#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
145 template<
typename SENDTYPE,
typename RECVTYPE>
146 void AMPI_Sendrecv_fwd(
typename SENDTYPE::AdjointType* sendbuf,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
int dest,
int sendtag,
147 typename RECVTYPE::AdjointType* recvbuf,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
int source,
int recvtag,
AMPI_Comm comm,
AMPI_Status* status) {
152 MPI_Sendrecv(sendbuf, sendbufSize, sendtype->getADTool().getAdjointMpiType(), dest, sendtag, recvbuf, recvbufSize, recvtype->getADTool().getAdjointMpiType(), source, recvtag, comm, status);
155#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
156 template<
typename DATATYPE>
157 void AMPI_Bcast_wrap_fwd(
typename DATATYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
typename DATATYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int count, DATATYPE* datatype,
int root,
AMPI_Comm comm) {
161 std::swap(sendbufAdjoints, recvbufAdjoints);
163 MPI_Bcast(recvbufAdjoints, recvbufSize, datatype->getADTool().getAdjointMpiType(), root, comm);
167#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
168 template<
typename DATATYPE>
169 void AMPI_Ibcast_wrap_fwd(
typename DATATYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
typename DATATYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int count, DATATYPE* datatype,
int root,
AMPI_Comm comm,
AMPI_Request* request) {
173 std::swap(sendbufAdjoints, recvbufAdjoints);
175 MPI_Ibcast(recvbufAdjoints, recvbufSize, datatype->getADTool().getAdjointMpiType(), root, comm, &request->
request);
179#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
180 template<
typename SENDTYPE,
typename RECVTYPE>
181 void AMPI_Scatter_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
int root,
AMPI_Comm comm) {
185 MPI_Scatter(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufSize, recvtype->getADTool().getAdjointMpiType(), root, comm);
189#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
190 template<
typename SENDTYPE,
typename RECVTYPE>
191 void AMPI_Iscatter_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
int root,
AMPI_Comm comm,
AMPI_Request* request) {
195 MPI_Iscatter(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufSize, recvtype->getADTool().getAdjointMpiType(), root, comm, &request->
request);
199#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
200 template<
typename SENDTYPE,
typename RECVTYPE>
201 void AMPI_Scatterv_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int* sendbufCounts,
MEDI_OPTIONAL_CONST int* sendbufDispl,
MEDI_OPTIONAL_CONST int* sendcount,
MEDI_OPTIONAL_CONST int* displs, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
int root,
AMPI_Comm comm) {
205 MPI_Scatterv(sendbufAdjoints, sendbufCounts, sendbufDispl, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufSize, recvtype->getADTool().getAdjointMpiType(), root, comm);
209#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
210 template<
typename SENDTYPE,
typename RECVTYPE>
211 void AMPI_Iscatterv_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int* sendbufCounts,
MEDI_OPTIONAL_CONST int* sendbufDispl,
MEDI_OPTIONAL_CONST int* sendcount,
MEDI_OPTIONAL_CONST int* displs, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
int root,
AMPI_Comm comm,
AMPI_Request* request) {
215 MPI_Iscatterv(sendbufAdjoints, sendbufCounts, sendbufDispl, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufSize, recvtype->getADTool().getAdjointMpiType(), root, comm, &request->
request);
219#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
220 template<
typename SENDTYPE,
typename RECVTYPE>
221 void AMPI_Gather_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
int root,
AMPI_Comm comm) {
225 MPI_Gather(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufSize, recvtype->getADTool().getAdjointMpiType(), root, comm);
229#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
230 template<
typename SENDTYPE,
typename RECVTYPE>
231 void AMPI_Igather_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
int root,
AMPI_Comm comm,
AMPI_Request* request) {
235 MPI_Igather(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufSize, recvtype->getADTool().getAdjointMpiType(), root, comm, &request->
request);
239#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
240 template<
typename SENDTYPE,
typename RECVTYPE>
241 void AMPI_Gatherv_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int* recvbufCounts,
MEDI_OPTIONAL_CONST int* recvbufDispls,
MEDI_OPTIONAL_CONST int* recvcounts,
MEDI_OPTIONAL_CONST int* displs, RECVTYPE* recvtype,
int root,
AMPI_Comm comm) {
246 MPI_Gatherv(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufCounts, recvbufDispls, recvtype->getADTool().getAdjointMpiType(), root, comm);
250#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
251 template<
typename SENDTYPE,
typename RECVTYPE>
252 void AMPI_Igatherv_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int* recvbufCounts,
MEDI_OPTIONAL_CONST int* recvbufDispls,
MEDI_OPTIONAL_CONST int* recvcounts,
MEDI_OPTIONAL_CONST int* displs, RECVTYPE* recvtype,
int root,
AMPI_Comm comm,
AMPI_Request* request) {
257 MPI_Igatherv(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufCounts, recvbufDispls, recvtype->getADTool().getAdjointMpiType(), root, comm, &request->
request);
261#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
262 template<
typename SENDTYPE,
typename RECVTYPE>
263 void AMPI_Allgather_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
AMPI_Comm comm) {
267 MPI_Allgather(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufSize, recvtype->getADTool().getAdjointMpiType(), comm);
271#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
272 template<
typename SENDTYPE,
typename RECVTYPE>
273 void AMPI_Iallgather_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
AMPI_Comm comm,
AMPI_Request* request ) {
277 MPI_Iallgather(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufSize, recvtype->getADTool().getAdjointMpiType(), comm, &request->
request);
281#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
282 template<
typename SENDTYPE,
typename RECVTYPE>
283 void AMPI_Allgatherv_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int* recvbufCounts,
MEDI_OPTIONAL_CONST int* recvbufDispls,
MEDI_OPTIONAL_CONST int* recvcounts,
MEDI_OPTIONAL_CONST int* displs, RECVTYPE* recvtype,
AMPI_Comm comm) {
288 MPI_Allgatherv(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufCounts, recvbufDispls, recvtype->getADTool().getAdjointMpiType(), comm);
292#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
293 template<
typename SENDTYPE,
typename RECVTYPE>
294 void AMPI_Iallgatherv_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int* recvbufCounts,
MEDI_OPTIONAL_CONST int* recvbufDispls,
MEDI_OPTIONAL_CONST int* recvcounts,
MEDI_OPTIONAL_CONST int* displs, RECVTYPE* recvtype,
AMPI_Comm comm,
AMPI_Request* request) {
299 MPI_Iallgatherv(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufCounts, recvbufDispls, recvtype->getADTool().getAdjointMpiType(), comm, &request->
request);
303#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
304 template<
typename SENDTYPE,
typename RECVTYPE>
305 void AMPI_Alltoall_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
AMPI_Comm comm) {
309 MPI_Alltoall(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufSize, recvtype->getADTool().getAdjointMpiType(), comm);
313#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
314 template<
typename SENDTYPE,
typename RECVTYPE>
315 void AMPI_Ialltoall_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
int sendcount, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int recvcount, RECVTYPE* recvtype,
AMPI_Comm comm,
AMPI_Request* request) {
319 MPI_Ialltoall(sendbufAdjoints, sendbufSize, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufSize, recvtype->getADTool().getAdjointMpiType(), comm, &request->
request);
323#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
324 template<
typename SENDTYPE,
typename RECVTYPE>
325 void AMPI_Alltoallv_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int* sendbufCounts,
MEDI_OPTIONAL_CONST int* sendbufDispls,
MEDI_OPTIONAL_CONST int* sendcounts,
MEDI_OPTIONAL_CONST int* sdispls, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int* recvbufCounts,
MEDI_OPTIONAL_CONST int* recvbufDispls,
MEDI_OPTIONAL_CONST int* recvcounts,
MEDI_OPTIONAL_CONST int* rdispls, RECVTYPE* recvtype,
AMPI_Comm comm) {
331 MPI_Alltoallv(sendbufAdjoints, sendbufCounts, sendbufDispls, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufCounts, recvbufDispls, recvtype->getADTool().getAdjointMpiType(), comm);
335#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
336 template<
typename SENDTYPE,
typename RECVTYPE>
337 void AMPI_Ialltoallv_fwd(
typename SENDTYPE::AdjointType* &sendbufAdjoints,
int* sendbufCounts,
MEDI_OPTIONAL_CONST int* sendbufDispls,
MEDI_OPTIONAL_CONST int* sendcounts,
MEDI_OPTIONAL_CONST int* sdispls, SENDTYPE* sendtype,
typename RECVTYPE::AdjointType* &recvbufAdjoints,
int* recvbufCounts,
MEDI_OPTIONAL_CONST int* recvbufDispls,
MEDI_OPTIONAL_CONST int* recvcounts,
MEDI_OPTIONAL_CONST int* rdispls, RECVTYPE* recvtype,
AMPI_Comm comm,
AMPI_Request* request) {
343 MPI_Ialltoallv(sendbufAdjoints, sendbufCounts, sendbufDispls, sendtype->getADTool().getAdjointMpiType(), recvbufAdjoints, recvbufCounts, recvbufDispls, recvtype->getADTool().getAdjointMpiType(), comm, &request->
request);
347#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
348 template<
typename DATATYPE>
349 void AMPI_Reduce_global_fwd(
typename DATATYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
typename DATATYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int count, DATATYPE* datatype,
AMPI_Op op,
int root,
AMPI_Comm comm) {
353 std::cout <<
"Forward reduce not supported." << std::endl;
357#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
358 template<
typename DATATYPE>
363 std::cout <<
"Forward reduce not supported." << std::endl;
367#if MEDI_MPI_VERSION_1_0 <= MEDI_MPI_TARGET
368 template<
typename DATATYPE>
369 void AMPI_Allreduce_global_fwd(
typename DATATYPE::AdjointType* &sendbufAdjoints,
int sendbufSize,
typename DATATYPE::AdjointType* &recvbufAdjoints,
int recvbufSize,
int count, DATATYPE* datatype,
AMPI_Op op,
AMPI_Comm comm) {
374 std::cout <<
"Forward reduce not supported." << std::endl;
378#if MEDI_MPI_VERSION_3_0 <= MEDI_MPI_TARGET
379 template<
typename DATATYPE>
385 std::cout <<
"Forward reduce not supported." << std::endl;
#define AMPI_Status
Definition ampiDefinitions.h:772
#define AMPI_Comm
Definition ampiDefinitions.h:778
#define MEDI_OPTIONAL_CONST
Definition macros.h:70
#define MEDI_UNUSED(name)
Definition macros.h:108
Global namespace for MeDiPack - Message Differentiation Package.
Definition adjointInterface.hpp:37
void AMPI_Iallgather_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int recvcount, RECVTYPE *recvtype, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:273
void AMPI_Mrecv_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, AMPI_Message *message, MPI_Status *status, RecvAdjCall reverse_call)
Definition forwardFunctions.hpp:119
void AMPI_Bsend_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, int dest, int tag, MPI_Comm comm)
Definition forwardFunctions.hpp:62
void AMPI_Ireduce_global_fwd(typename DATATYPE::AdjointType *&sendbufAdjoints, int sendbufSize, typename DATATYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int count, DATATYPE *datatype, AMPI_Op op, int root, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:359
void AMPI_Gather_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int recvcount, RECVTYPE *recvtype, int root, MPI_Comm comm)
Definition forwardFunctions.hpp:221
void AMPI_Send_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, int dest, int tag, MPI_Comm comm)
Definition forwardFunctions.hpp:46
IrecvAdjCall
Definition enums.hpp:40
void AMPI_Irsend_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, int dest, int tag, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:102
void AMPI_Ibcast_wrap_fwd(typename DATATYPE::AdjointType *&sendbufAdjoints, int sendbufSize, typename DATATYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int count, DATATYPE *datatype, int root, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:169
void AMPI_Igatherv_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int *recvbufCounts, const int *recvbufDispls, const int *recvcounts, const int *displs, RECVTYPE *recvtype, int root, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:252
void AMPI_Igather_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int recvcount, RECVTYPE *recvtype, int root, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:231
void AMPI_Ssend_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, int dest, int tag, MPI_Comm comm)
Definition forwardFunctions.hpp:78
RecvAdjCall
Definition enums.hpp:44
void AMPI_Recv_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, int src, int tag, MPI_Comm comm, MPI_Status *status, RecvAdjCall reverse_call)
Definition forwardFunctions.hpp:110
void AMPI_Rsend_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, int dest, int tag, MPI_Comm comm)
Definition forwardFunctions.hpp:94
void AMPI_Bcast_wrap_fwd(typename DATATYPE::AdjointType *&sendbufAdjoints, int sendbufSize, typename DATATYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int count, DATATYPE *datatype, int root, MPI_Comm comm)
Definition forwardFunctions.hpp:157
void AMPI_Issend_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, int dest, int tag, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:86
void AMPI_Gatherv_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int *recvbufCounts, const int *recvbufDispls, const int *recvcounts, const int *displs, RECVTYPE *recvtype, int root, MPI_Comm comm)
Definition forwardFunctions.hpp:241
void AMPI_Scatter_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int recvcount, RECVTYPE *recvtype, int root, MPI_Comm comm)
Definition forwardFunctions.hpp:181
void AMPI_Irecv_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, int src, int tag, MPI_Comm comm, AMPI_Request *request, IrecvAdjCall reverse_call)
Definition forwardFunctions.hpp:128
void AMPI_Iscatterv_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int *sendbufCounts, const int *sendbufDispl, const int *sendcount, const int *displs, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int recvcount, RECVTYPE *recvtype, int root, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:211
int getCommRank(MPI_Comm comm)
Helper function that gets the own rank number from the communicator.
Definition mpiTools.h:52
void AMPI_Imrecv_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, AMPI_Message *message, AMPI_Request *request, IrecvAdjCall reverse_call)
Definition forwardFunctions.hpp:137
void AMPI_Allreduce_global_fwd(typename DATATYPE::AdjointType *&sendbufAdjoints, int sendbufSize, typename DATATYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int count, DATATYPE *datatype, AMPI_Op op, MPI_Comm comm)
Definition forwardFunctions.hpp:369
void AMPI_Alltoallv_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int *sendbufCounts, const int *sendbufDispls, const int *sendcounts, const int *sdispls, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int *recvbufCounts, const int *recvbufDispls, const int *recvcounts, const int *rdispls, RECVTYPE *recvtype, MPI_Comm comm)
Definition forwardFunctions.hpp:325
void AMPI_Ialltoall_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int recvcount, RECVTYPE *recvtype, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:315
void AMPI_Iscatter_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int recvcount, RECVTYPE *recvtype, int root, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:191
void AMPI_Iallreduce_global_fwd(typename DATATYPE::AdjointType *&sendbufAdjoints, int sendbufSize, typename DATATYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int count, DATATYPE *datatype, AMPI_Op op, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:380
void AMPI_Isend_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, int dest, int tag, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:54
void AMPI_Alltoall_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int recvcount, RECVTYPE *recvtype, MPI_Comm comm)
Definition forwardFunctions.hpp:305
void AMPI_Iallgatherv_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int *recvbufCounts, const int *recvbufDispls, const int *recvcounts, const int *displs, RECVTYPE *recvtype, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:294
void AMPI_Allgatherv_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int *recvbufCounts, const int *recvbufDispls, const int *recvcounts, const int *displs, RECVTYPE *recvtype, MPI_Comm comm)
Definition forwardFunctions.hpp:283
void AMPI_Allgather_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int sendbufSize, int sendcount, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int recvcount, RECVTYPE *recvtype, MPI_Comm comm)
Definition forwardFunctions.hpp:263
void AMPI_Scatterv_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int *sendbufCounts, const int *sendbufDispl, const int *sendcount, const int *displs, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int recvcount, RECVTYPE *recvtype, int root, MPI_Comm comm)
Definition forwardFunctions.hpp:201
void AMPI_Ialltoallv_fwd(typename SENDTYPE::AdjointType *&sendbufAdjoints, int *sendbufCounts, const int *sendbufDispls, const int *sendcounts, const int *sdispls, SENDTYPE *sendtype, typename RECVTYPE::AdjointType *&recvbufAdjoints, int *recvbufCounts, const int *recvbufDispls, const int *recvcounts, const int *rdispls, RECVTYPE *recvtype, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:337
void AMPI_Sendrecv_fwd(typename SENDTYPE::AdjointType *sendbuf, int sendbufSize, int sendcount, SENDTYPE *sendtype, int dest, int sendtag, typename RECVTYPE::AdjointType *recvbuf, int recvbufSize, int recvcount, RECVTYPE *recvtype, int source, int recvtag, MPI_Comm comm, MPI_Status *status)
Definition forwardFunctions.hpp:146
void AMPI_Reduce_global_fwd(typename DATATYPE::AdjointType *&sendbufAdjoints, int sendbufSize, typename DATATYPE::AdjointType *&recvbufAdjoints, int recvbufSize, int count, DATATYPE *datatype, AMPI_Op op, int root, MPI_Comm comm)
Definition forwardFunctions.hpp:349
void AMPI_Ibsend_fwd(typename DATATYPE::AdjointType *bufAdjoints, int bufSize, int count, DATATYPE *datatype, int dest, int tag, MPI_Comm comm, AMPI_Request *request)
Definition forwardFunctions.hpp:70
Stores additional information for a MPI_Message.
Definition message.hpp:44
MPI_Message message
Definition message.hpp:45
Structure for the special handling of the MPI_Op structure.
Definition op.hpp:50
MPI_Request request
Definition async.hpp:46