10#ifndef TPETRA_LEFTANDORRIGHTSCALECRSMATRIX_DECL_HPP
11#define TPETRA_LEFTANDORRIGHTSCALECRSMATRIX_DECL_HPP
16#include "TpetraCore_config.h"
17#include "Kokkos_ArithTraits.hpp"
18#include "Kokkos_Core.hpp"
59template<
class SC,
class LO,
class GO,
class NT>
63 const typename Kokkos::ArithTraits<SC>::mag_type*,
64 typename NT::device_type>& rowScalingFactors,
66 const typename Kokkos::ArithTraits<SC>::mag_type*,
67 typename NT::device_type>& colScalingFactors,
69 const bool rightScale,
70 const bool assumeSymmetric,
100template<
class SC,
class LO,
class GO,
class NT>
104 LO, GO, NT>& rowScalingFactors,
106 LO, GO, NT>& colScalingFactors,
107 const bool leftScale,
108 const bool rightScale,
109 const bool assumeSymmetric,
Forward declaration of Tpetra::CrsMatrix.
Forward declaration of Tpetra::Vector.
Sparse matrix that presents a row-oriented interface that lets users read or modify entries.
A distributed dense vector.
Namespace Tpetra contains the class and methods constituting the Tpetra library.
EScaling
Whether "scaling" a matrix means multiplying or dividing its entries.
void leftAndOrRightScaleCrsMatrix(Tpetra::CrsMatrix< SC, LO, GO, NT > &A, const Kokkos::View< const typename Kokkos::ArithTraits< SC >::mag_type *, typename NT::device_type > &rowScalingFactors, const Kokkos::View< const typename Kokkos::ArithTraits< SC >::mag_type *, typename NT::device_type > &colScalingFactors, const bool leftScale, const bool rightScale, const bool assumeSymmetric, const EScaling scaling)
Left-scale and/or right-scale (in that order) the entries of the input Tpetra::CrsMatrix A.