44 #ifndef TPETRA_DETAILS_MULTI_VECTOR_DIST_OBJECT_KERNELS_DEF_HPP 45 #define TPETRA_DETAILS_MULTI_VECTOR_DIST_OBJECT_KERNELS_DEF_HPP 47 #include "Tpetra_ConfigDefs.hpp" 48 #if TPETRA_USE_KOKKOS_DISTOBJECT 55 template <
typename Scalar,
typename LocalOrdinal,
typename Device>
57 PackArraySingleColumnConstantStride<Scalar,LocalOrdinal,Device>::
59 Kokkos::parallel_for( exportLIDs.size(), *this );
64 template <
typename Scalar,
typename LocalOrdinal,
typename Device>
66 PackArraySingleColumnOffset<Scalar,LocalOrdinal,Device>::
68 Kokkos::parallel_for( exportLIDs.size(), *this );
73 template <
typename Scalar,
typename LocalOrdinal,
typename Device>
75 PackArrayMultiColumnConstantStride<Scalar,LocalOrdinal,Device>::
77 Kokkos::parallel_for( exportLIDs.size(), *this );
82 template <
typename Scalar,
typename LocalOrdinal,
typename Device>
84 PackArrayMultiColumnVariableStride<Scalar,LocalOrdinal,Device>::
86 Kokkos::parallel_for( exportLIDs.size(), *this );
91 template <
typename Scalar,
typename LocalOrdinal,
typename Op,
typename Device>
93 UnpackArrayMultiColumnConstantStride<Scalar,LocalOrdinal,Op,Device>::
95 Kokkos::parallel_for( importLIDs.size(), *this );
100 template <
typename Scalar,
typename LocalOrdinal,
typename Op,
typename Device>
102 UnpackArrayMultiColumnVariableStride<Scalar,LocalOrdinal,Op,Device>::
104 Kokkos::parallel_for( importLIDs.size(), *this );
109 template <
typename Scalar,
typename LocalOrdinal,
typename Device>
111 PermuteArrayMultiColumnConstantStride<Scalar,LocalOrdinal,Device>::
113 const size_type numPermuteLIDs =
114 std::min (permuteToLIDs.size (), permuteFromLIDs.size ());
115 Kokkos::parallel_for( numPermuteLIDs, *
this );
120 template <
typename Scalar,
typename LocalOrdinal,
typename Device>
122 PermuteArrayMultiColumnVariableStride<Scalar,LocalOrdinal,Device>::
124 const size_type numPermuteLIDs =
125 std::min (permuteToLIDs.size (), permuteFromLIDs.size ());
126 Kokkos::parallel_for( numPermuteLIDs, *
this );
129 #define PACK_KERNELS_INSTANT(SC,LO,DE) \ 130 template class PackArraySingleColumnConstantStride< SC, LO, DE >; \ 131 template class PackArraySingleColumnOffset< SC, LO, DE >; \ 132 template class PackArrayMultiColumnConstantStride< SC, LO, DE >; \ 133 template class PackArrayMultiColumnVariableStride< SC, LO, DE >; 135 #define UNPACK_KERNELS_INSTANT(SC,LO,OP,DE) \ 136 template class UnpackArrayMultiColumnConstantStride< SC, LO, OP, DE >; \ 137 template class UnpackArrayMultiColumnVariableStride< SC, LO, OP, DE >; 139 #define PERM_KERNELS_INSTANT(SC,LO,DE) \ 140 template class PermuteArrayMultiColumnConstantStride< SC, LO, DE >; \ 141 template class PermuteArrayMultiColumnVariableStride< SC, LO, DE >; 143 #define KERNELS_INSTANT(SC,LO,DE) \ 144 PACK_KERNELS_INSTANT(SC,LO,DE) \ 145 PERM_KERNELS_INSTANT(SC,LO,DE) \ 146 UNPACK_KERNELS_INSTANT(SC,LO,InsertOp,DE) \ 147 UNPACK_KERNELS_INSTANT(SC,LO,AddOp,DE) \ 148 UNPACK_KERNELS_INSTANT(SC,LO,AbsMaxOp,DE) 153 #endif // TPETRA_USE_KOKKOS_DISTOBJECT 155 #endif // TPETRA_DETAILS_MULTI_VECTOR_DIST_OBJECT_KERNELS_DEF_HPP Namespace Tpetra contains the class and methods constituting the Tpetra library.
Implementation details of Tpetra.