52#if KOKKOS_VERSION >= 40799
53 using val_type =
typename KokkosKernels::ArithTraits<ScalarType>::val_type;
55 using val_type =
typename Kokkos::ArithTraits<ScalarType>::val_type;
57#if KOKKOS_VERSION >= 40799
58 using mag_type =
typename KokkosKernels::ArithTraits<val_type>::mag_type;
60 using mag_type =
typename Kokkos::ArithTraits<val_type>::mag_type;
62 using device_type =
typename DeviceType::device_type;
63 using host_device_type =
typename Kokkos::View<mag_type*, device_type>::host_mirror_type::device_type;
74 const bool assumeSymmetric_)
79 assumeSymmetric_ ? std::size_t(0) :
lclNumCols))
81 assumeSymmetric_ ? std::size_t(0) :
lclNumCols))
90 const Kokkos::View<mag_type*, device_type>&
colNorms_,
92 const Kokkos::View<mag_type*, device_type>& rowScaledColNorms_,
93 const bool assumeSymmetric_,
110 template <
class SrcDeviceType>
113 using execution_space =
typename device_type::execution_space;
115 Kokkos::deep_copy(execution_space(),
rowNorms, src.rowNorms);
119 Kokkos::deep_copy(execution_space(),
colNorms, src.colNorms);
120 if (src.colDiagonalEntries.extent(0) == 0) {
122 Kokkos::View<val_type*, device_type>(
"colDiagonalEntries", 0);
127 if (src.rowScaledColNorms.extent(0) == 0) {
129 Kokkos::View<mag_type*, device_type>(
"rowScaledColNorms", 0);