OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Classes | Macros | Functions
Operations.h File Reference
#include <functional>
#include <mpi.h>
Include dependency graph for Operations.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  is_ippl_mpi_type< class >
 
struct  is_ippl_mpi_type< std::plus< char > >
 
struct  is_ippl_mpi_type< std::plus< short > >
 
struct  is_ippl_mpi_type< std::plus< int > >
 
struct  is_ippl_mpi_type< std::plus< long > >
 
struct  is_ippl_mpi_type< std::plus< long long > >
 
struct  is_ippl_mpi_type< std::plus< unsigned char > >
 
struct  is_ippl_mpi_type< std::plus< unsigned short > >
 
struct  is_ippl_mpi_type< std::plus< unsigned int > >
 
struct  is_ippl_mpi_type< std::plus< unsigned long > >
 
struct  is_ippl_mpi_type< std::plus< unsigned long long > >
 
struct  is_ippl_mpi_type< std::plus< float > >
 
struct  is_ippl_mpi_type< std::plus< double > >
 
struct  is_ippl_mpi_type< std::plus< long double > >
 
struct  is_ippl_mpi_type< std::less< char > >
 
struct  is_ippl_mpi_type< std::less< short > >
 
struct  is_ippl_mpi_type< std::less< int > >
 
struct  is_ippl_mpi_type< std::less< long > >
 
struct  is_ippl_mpi_type< std::less< long long > >
 
struct  is_ippl_mpi_type< std::less< unsigned char > >
 
struct  is_ippl_mpi_type< std::less< unsigned short > >
 
struct  is_ippl_mpi_type< std::less< unsigned int > >
 
struct  is_ippl_mpi_type< std::less< unsigned long > >
 
struct  is_ippl_mpi_type< std::less< unsigned long long > >
 
struct  is_ippl_mpi_type< std::less< float > >
 
struct  is_ippl_mpi_type< std::less< double > >
 
struct  is_ippl_mpi_type< std::less< long double > >
 
struct  is_ippl_mpi_type< std::greater< char > >
 
struct  is_ippl_mpi_type< std::greater< short > >
 
struct  is_ippl_mpi_type< std::greater< int > >
 
struct  is_ippl_mpi_type< std::greater< long > >
 
struct  is_ippl_mpi_type< std::greater< long long > >
 
struct  is_ippl_mpi_type< std::greater< unsigned char > >
 
struct  is_ippl_mpi_type< std::greater< unsigned short > >
 
struct  is_ippl_mpi_type< std::greater< unsigned int > >
 
struct  is_ippl_mpi_type< std::greater< unsigned long > >
 
struct  is_ippl_mpi_type< std::greater< unsigned long long > >
 
struct  is_ippl_mpi_type< std::greater< float > >
 
struct  is_ippl_mpi_type< std::greater< double > >
 
struct  is_ippl_mpi_type< std::greater< long double > >
 
struct  is_ippl_mpi_type< std::logical_or< bool > >
 
struct  is_ippl_mpi_type< std::logical_and< bool > >
 

Macros

#define IPPL_MPI_OP(CppOp, MPIOp)
 

Functions

template<class Op >
MPI_Op get_mpi_op (Op op)
 
template<>
MPI_Op get_mpi_op< std::plus< char > > (std::plus< char >)
 
template<>
MPI_Op get_mpi_op< std::plus< short > > (std::plus< short >)
 
template<>
MPI_Op get_mpi_op< std::plus< int > > (std::plus< int >)
 
template<>
MPI_Op get_mpi_op< std::plus< long > > (std::plus< long >)
 
template<>
MPI_Op get_mpi_op< std::plus< long long > > (std::plus< long long >)
 
template<>
MPI_Op get_mpi_op< std::plus< unsigned char > > (std::plus< unsigned char >)
 
template<>
MPI_Op get_mpi_op< std::plus< unsigned short > > (std::plus< unsigned short >)
 
template<>
MPI_Op get_mpi_op< std::plus< unsigned int > > (std::plus< unsigned int >)
 
template<>
MPI_Op get_mpi_op< std::plus< unsigned long > > (std::plus< unsigned long >)
 
template<>
MPI_Op get_mpi_op< std::plus< unsigned long long > > (std::plus< unsigned long long >)
 
template<>
MPI_Op get_mpi_op< std::plus< float > > (std::plus< float >)
 
template<>
MPI_Op get_mpi_op< std::plus< double > > (std::plus< double >)
 
template<>
MPI_Op get_mpi_op< std::plus< long double > > (std::plus< long double >)
 
template<>
MPI_Op get_mpi_op< std::less< char > > (std::less< char >)
 
template<>
MPI_Op get_mpi_op< std::less< short > > (std::less< short >)
 
template<>
MPI_Op get_mpi_op< std::less< int > > (std::less< int >)
 
template<>
MPI_Op get_mpi_op< std::less< long > > (std::less< long >)
 
template<>
MPI_Op get_mpi_op< std::less< long long > > (std::less< long long >)
 
template<>
MPI_Op get_mpi_op< std::less< unsigned char > > (std::less< unsigned char >)
 
template<>
MPI_Op get_mpi_op< std::less< unsigned short > > (std::less< unsigned short >)
 
template<>
MPI_Op get_mpi_op< std::less< unsigned int > > (std::less< unsigned int >)
 
template<>
MPI_Op get_mpi_op< std::less< unsigned long > > (std::less< unsigned long >)
 
template<>
MPI_Op get_mpi_op< std::less< unsigned long long > > (std::less< unsigned long long >)
 
template<>
MPI_Op get_mpi_op< std::less< float > > (std::less< float >)
 
template<>
MPI_Op get_mpi_op< std::less< double > > (std::less< double >)
 
template<>
MPI_Op get_mpi_op< std::less< long double > > (std::less< long double >)
 
template<>
MPI_Op get_mpi_op< std::greater< char > > (std::greater< char >)
 
template<>
MPI_Op get_mpi_op< std::greater< short > > (std::greater< short >)
 
template<>
MPI_Op get_mpi_op< std::greater< int > > (std::greater< int >)
 
template<>
MPI_Op get_mpi_op< std::greater< long > > (std::greater< long >)
 
template<>
MPI_Op get_mpi_op< std::greater< long long > > (std::greater< long long >)
 
template<>
MPI_Op get_mpi_op< std::greater< unsigned char > > (std::greater< unsigned char >)
 
template<>
MPI_Op get_mpi_op< std::greater< unsigned short > > (std::greater< unsigned short >)
 
template<>
MPI_Op get_mpi_op< std::greater< unsigned int > > (std::greater< unsigned int >)
 
template<>
MPI_Op get_mpi_op< std::greater< unsigned long > > (std::greater< unsigned long >)
 
template<>
MPI_Op get_mpi_op< std::greater< unsigned long long > > (std::greater< unsigned long long >)
 
template<>
MPI_Op get_mpi_op< std::greater< float > > (std::greater< float >)
 
template<>
MPI_Op get_mpi_op< std::greater< double > > (std::greater< double >)
 
template<>
MPI_Op get_mpi_op< std::greater< long double > > (std::greater< long double >)
 
template<>
MPI_Op get_mpi_op< std::logical_or< bool > > (std::logical_or< bool >)
 
template<>
MPI_Op get_mpi_op< std::logical_and< bool > > (std::logical_and< bool >)
 

Macro Definition Documentation

#define IPPL_MPI_OP (   CppOp,
  MPIOp 
)
Value:
template <> \
inline MPI_Op \
get_mpi_op< CppOp >(CppOp) { return MPIOp; } \
\
template<> \
std::true_type {};

Definition at line 16 of file Operations.h.

Function Documentation

template<class Op >
MPI_Op get_mpi_op ( Op  op)

Definition at line 9 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< char > > ( std::greater< char >  )
inline

Definition at line 63 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< double > > ( std::greater< double >  )
inline

Definition at line 74 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< float > > ( std::greater< float >  )
inline

Definition at line 73 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< int > > ( std::greater< int >  )
inline

Definition at line 65 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< long > > ( std::greater< long >  )
inline

Definition at line 66 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< long double > > ( std::greater< long double >  )
inline

Definition at line 75 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< long long > > ( std::greater< long long >  )
inline

Definition at line 67 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< short > > ( std::greater< short >  )
inline

Definition at line 64 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< unsigned char > > ( std::greater< unsigned char >  )
inline

Definition at line 68 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< unsigned int > > ( std::greater< unsigned int >  )
inline

Definition at line 70 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< unsigned long > > ( std::greater< unsigned long >  )
inline

Definition at line 71 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< unsigned long long > > ( std::greater< unsigned long long >  )
inline

Definition at line 72 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::greater< unsigned short > > ( std::greater< unsigned short >  )
inline

Definition at line 69 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< char > > ( std::less< char >  )
inline

Definition at line 48 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< double > > ( std::less< double >  )
inline

Definition at line 59 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< float > > ( std::less< float >  )
inline

Definition at line 58 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< int > > ( std::less< int >  )
inline

Definition at line 50 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< long > > ( std::less< long >  )
inline

Definition at line 51 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< long double > > ( std::less< long double >  )
inline

Definition at line 60 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< long long > > ( std::less< long long >  )
inline

Definition at line 52 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< short > > ( std::less< short >  )
inline

Definition at line 49 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< unsigned char > > ( std::less< unsigned char >  )
inline

Definition at line 53 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< unsigned int > > ( std::less< unsigned int >  )
inline

Definition at line 55 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< unsigned long > > ( std::less< unsigned long >  )
inline

Definition at line 56 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< unsigned long long > > ( std::less< unsigned long long >  )
inline

Definition at line 57 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::less< unsigned short > > ( std::less< unsigned short >  )
inline

Definition at line 54 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::logical_and< bool > > ( std::logical_and< bool >  )
inline

Definition at line 79 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::logical_or< bool > > ( std::logical_or< bool >  )
inline

Definition at line 78 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< char > > ( std::plus< char >  )
inline

Definition at line 33 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< double > > ( std::plus< double >  )
inline

Definition at line 44 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< float > > ( std::plus< float >  )
inline

Definition at line 43 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< int > > ( std::plus< int >  )
inline

Definition at line 35 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< long > > ( std::plus< long >  )
inline

Definition at line 36 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< long double > > ( std::plus< long double >  )
inline

Definition at line 45 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< long long > > ( std::plus< long long >  )
inline

Definition at line 37 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< short > > ( std::plus< short >  )
inline

Definition at line 34 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< unsigned char > > ( std::plus< unsigned char >  )
inline

Definition at line 38 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< unsigned int > > ( std::plus< unsigned int >  )
inline

Definition at line 40 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< unsigned long > > ( std::plus< unsigned long >  )
inline

Definition at line 41 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< unsigned long long > > ( std::plus< unsigned long long >  )
inline

Definition at line 42 of file Operations.h.

template<>
MPI_Op get_mpi_op< std::plus< unsigned short > > ( std::plus< unsigned short >  )
inline

Definition at line 39 of file Operations.h.