48 using val_type =
typename KokkosKernels::ArithTraits<ScalarType>::val_type;
49 using mag_type =
typename KokkosKernels::ArithTraits<val_type>::mag_type;
50 using device_type =
typename DeviceType::device_type;
51 using host_device_type =
typename Kokkos::View<mag_type*, device_type>::host_mirror_type::device_type;
62 const bool assumeSymmetric_)
67 assumeSymmetric_ ? std::size_t(0) :
lclNumCols))
69 assumeSymmetric_ ? std::size_t(0) :
lclNumCols))
78 const Kokkos::View<mag_type*, device_type>&
colNorms_,
80 const Kokkos::View<mag_type*, device_type>& rowScaledColNorms_,
81 const bool assumeSymmetric_,
98 template <
class SrcDeviceType>
101 using execution_space =
typename device_type::execution_space;
103 Kokkos::deep_copy(execution_space(),
rowNorms, src.rowNorms);
107 Kokkos::deep_copy(execution_space(),
colNorms, src.colNorms);
108 if (src.colDiagonalEntries.extent(0) == 0) {
110 Kokkos::View<val_type*, device_type>(
"colDiagonalEntries", 0);
115 if (src.rowScaledColNorms.extent(0) == 0) {
117 Kokkos::View<mag_type*, device_type>(
"rowScaledColNorms", 0);