10 #ifndef TPETRA_DETAILS_MPITYPETRAITS_HPP
11 #define TPETRA_DETAILS_MPITYPETRAITS_HPP
37 #include "TpetraCore_config.h"
38 #ifdef HAVE_TPETRACORE_MPI
40 #include "Kokkos_Complex.hpp"
41 #include "Teuchos_Details_MpiTypeTraits.hpp"
53 class MpiTypeTraits< ::Kokkos::complex<double> > {
56 static const bool hasMpi3 =
true;
58 static const bool hasMpi3 =
false;
59 #endif // MPI_VERSION >= 3
63 static const bool isSpecialized =
true;
67 static const bool needsFree = ! hasMpi3;
70 static MPI_Datatype getType (const ::Kokkos::complex<double>& z);
73 static MPI_Datatype getType ();
77 class MpiTypeTraits< ::Kokkos::complex<float> > {
80 static const bool hasMpi3 =
true;
82 static const bool hasMpi3 =
false;
83 #endif // MPI_VERSION >= 3
87 static const bool isSpecialized =
true;
91 static const bool needsFree = ! hasMpi3;
94 static MPI_Datatype getType (const ::Kokkos::complex<float>& z);
97 static MPI_Datatype getType ();
107 using ::Teuchos::Details::MpiTypeTraits;
112 #endif // HAVE_TPETRACORE_MPI
113 #endif // TPETRA_DETAILS_MPITYPETRAITS_HPP