44 #include "TpetraCore_config.h"
46 #if defined(HAVE_TPETRA_EXPLICIT_INSTANTIATION)
48 #include "KokkosCompat_ClassicNodeAPI_Wrapper.hpp"
49 #include "Tpetra_Details_normImpl_decl.hpp"
51 #include "TpetraCore_ETIHelperMacros.h"
54 #if defined(HAVE_TPETRA_INST_INT_INT)
56 # define TPETRA_DETAILS_NORMIMPL_INSTANT_INT( NODE )
58 # define TPETRA_DETAILS_NORMIMPL_INSTANT_INT( NODE ) \
59 TPETRA_DETAILS_NORMIMPL_INSTANT( int, NODE )
64 TPETRA_ETI_MANGLING_TYPEDEFS()
66 TPETRA_INSTANTIATE_SN_NO_ORDINAL_SCALAR( TPETRA_DETAILS_NORMIMPL_INSTANT )
67 TPETRA_INSTANTIATE_GN( TPETRA_DETAILS_NORMIMPL_INSTANT )
68 #ifndef HAVE_TPETRA_INST_INT_INT
69 TPETRA_INSTANTIATE_N( TPETRA_DETAILS_NORMIMPL_INSTANT_INT )
70 #endif // NOT HAVE_TPETRA_INST_INT_INT
72 #ifdef HAVE_TPETRA_INST_CUDA
74 using cuda_host_mirror_device_type =
75 Kokkos::Device<Kokkos::DefaultHostExecutionSpace,
76 Kokkos::CudaUVMSpace>;
78 #define TPETRA_DETAILS_NORMIMPL_INSTANT_CUDAHOSTMIRROR( S ) \
79 TPETRA_DETAILS_NORMIMPL_INSTANT( S, cuda_host_mirror_device_type )
81 TPETRA_INSTANTIATE_S_NO_ORDINAL_SCALAR( TPETRA_DETAILS_NORMIMPL_INSTANT_CUDAHOSTMIRROR )
82 TPETRA_INSTANTIATE_G( TPETRA_DETAILS_NORMIMPL_INSTANT_CUDAHOSTMIRROR )
83 #if ! defined(HAVE_TPETRA_INST_INT_INT)
84 TPETRA_DETAILS_NORMIMPL_INSTANT_CUDAHOSTMIRROR(
int )
87 #endif // HAVE_TPETRA_INST_CUDA
91 #endif // Whether we should build this specialization
Definition of the Tpetra::Details::normImpl function.