40 #ifndef TPETRA_LOCALOPERATOR_HPP
41 #define TPETRA_LOCALOPERATOR_HPP
44 #include "Teuchos_BLAS_types.hpp"
45 #include "Kokkos_ArithTraits.hpp"
46 #include <type_traits>
58 template<
class Scalar,
class Device>
61 using scalar_type =
typename Kokkos::ArithTraits<Scalar>::val_type;
62 using array_layout = Kokkos::LayoutLeft;
64 Kokkos::Device<
typename Device::execution_space,
65 typename Device::memory_space>;
70 apply (Kokkos::View<
const scalar_type**, array_layout,
71 device_type, Kokkos::MemoryTraits<Kokkos::Unmanaged> > X,
72 Kokkos::View<scalar_type**, array_layout,
73 device_type, Kokkos::MemoryTraits<Kokkos::Unmanaged> > Y,
74 const Teuchos::ETransp mode,
75 const scalar_type alpha,
76 const scalar_type beta)
const = 0;
78 virtual bool hasTransposeApply ()
const {
return false; }
83 #endif // TPETRA_LOCALOPERATOR_HPP
Abstract interface for local operators (e.g., matrices and preconditioners).
Forward declaration of Tpetra::LocalCrsMatrixOperator.