IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ippl::mpi::getNontrivialMpiOpImpl< Op, Type > Struct Template Reference

Helper struct to look up and store MPI_Op types for custom types and custom operations. More...

#include <Operations.h>

Collaboration diagram for ippl::mpi::getNontrivialMpiOpImpl< Op, Type >:

Public Member Functions

MPI_Op operator() ()
 Get the MPI_Op for this CppOp + Type combo.

Detailed Description

template<class Op, typename Type>
struct ippl::mpi::getNontrivialMpiOpImpl< Op, Type >

Helper struct to look up and store MPI_Op types for custom types and custom operations.

Template Parameters
OpOperation type, for examples std::plus<Vector<double, 3>>, std::multiplies<...> etc.
TypeThe underlying datatype, such as Vector<double, 3>, Matrix<...> etc.

Definition at line 79 of file Operations.h.

Member Function Documentation

◆ operator()()

template<class Op, typename Type>
MPI_Op ippl::mpi::getNontrivialMpiOpImpl< Op, Type >::operator() ( )
inline

Get the MPI_Op for this CppOp + Type combo.

Returns
MPI_Op

Construct a new lambda object without captures, therefore convertible to a function pointer

Parameters
inputBufferpointing to a Type object
outputBufferpointing to a Type object
lenAmount of Type objects! NOT amount of bytes!

Definition at line 85 of file Operations.h.

References ippl::mpi::MAX, ippl::max, ippl::mpi::MIN, ippl::min(), ippl::mpi::mpiOperations, ippl::mpi::MULTIPLICATION, and ippl::mpi::SUM.

Here is the call graph for this function:

The documentation for this struct was generated from the following file: