44 #ifndef TPETRA_DETAILS_MPITYPETRAITS_HPP
45 #define TPETRA_DETAILS_MPITYPETRAITS_HPP
71 #include "TpetraCore_config.h"
72 #ifdef HAVE_TPETRACORE_MPI
74 #include "Kokkos_Complex.hpp"
75 #include "Teuchos_Details_MpiTypeTraits.hpp"
87 class MpiTypeTraits< ::Kokkos::complex<double> > {
90 static const bool hasMpi3 =
true;
92 static const bool hasMpi3 =
false;
93 #endif // MPI_VERSION >= 3
97 static const bool isSpecialized =
true;
101 static const bool needsFree = ! hasMpi3;
104 static MPI_Datatype getType (const ::Kokkos::complex<double>& z);
107 static MPI_Datatype getType ();
111 class MpiTypeTraits< ::Kokkos::complex<float> > {
114 static const bool hasMpi3 =
true;
116 static const bool hasMpi3 =
false;
117 #endif // MPI_VERSION >= 3
121 static const bool isSpecialized =
true;
125 static const bool needsFree = ! hasMpi3;
128 static MPI_Datatype getType (const ::Kokkos::complex<float>& z);
131 static MPI_Datatype getType ();
141 using ::Teuchos::Details::MpiTypeTraits;
146 #endif // HAVE_TPETRACORE_MPI
147 #endif // TPETRA_DETAILS_MPITYPETRAITS_HPP