42#ifndef TPETRA_DETAILS_RIGHTSCALELOCALCRSMATRIX_HPP
43#define TPETRA_DETAILS_RIGHTSCALELOCALCRSMATRIX_HPP
52#include "TpetraCore_config.h"
53#include "Kokkos_Core.hpp"
54#include "Kokkos_ArithTraits.hpp"
68template<
class LocalSparseMatrixType,
69 class ScalingFactorsViewType,
74 typename std::remove_const<typename LocalSparseMatrixType::value_type>::type;
75 using mag_type =
typename ScalingFactorsViewType::non_const_value_type;
76 static_assert (ScalingFactorsViewType::Rank == 1,
77 "scalingFactors must be a rank-1 Kokkos::View.");
78 using device_type =
typename LocalSparseMatrixType::device_type;
92 const bool assumeSymmetric) :
95 assumeSymmetric_ (assumeSymmetric)
101 using LO =
typename LocalSparseMatrixType::ordinal_type;
102 using KAM = Kokkos::ArithTraits<mag_type>;
123 LocalSparseMatrixType A_lcl_;
124 typename ScalingFactorsViewType::const_type scalingFactors_;
125 bool assumeSymmetric_;
141template<
class LocalSparseMatrixType,
class ScalingFactorsViewType>
145 const bool assumeSymmetric,
148 using device_type =
typename LocalSparseMatrixType::device_type;
149 using execution_space =
typename device_type::execution_space;
150 using LO =
typename LocalSparseMatrixType::ordinal_type;
151 using range_type = Kokkos::RangePolicy<execution_space, LO>;
157 typename ScalingFactorsViewType::const_type,
true>;
159 Kokkos::parallel_for (
"rightScaleLocalCrsMatrix",
165 typename ScalingFactorsViewType::const_type,
false>;
167 Kokkos::parallel_for (
"rightScaleLocalCrsMatrix",
Struct that holds views of the contents of a CrsMatrix.
Kokkos::parallel_for functor that right-scales a KokkosSparse::CrsMatrix.
RightScaleLocalCrsMatrix(const LocalSparseMatrixType &A_lcl, const ScalingFactorsViewType &scalingFactors, const bool assumeSymmetric)
Implementation details of Tpetra.
void rightScaleLocalCrsMatrix(const LocalSparseMatrixType &A_lcl, const ScalingFactorsViewType &scalingFactors, const bool assumeSymmetric, const bool divide=true)
Right-scale a KokkosSparse::CrsMatrix.
Namespace Tpetra contains the class and methods constituting the Tpetra library.