Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Kokkos_DummySparseKernelClass.hpp
Go to the documentation of this file.
00001 #ifndef KOKKOS_DUMMY_SPARSE_KERNEL_CLASS_HPP
00002 #define KOKKOS_DUMMY_SPARSE_KERNEL_CLASS_HPP
00003 
00004 #include <Kokkos_CrsMatrix.hpp>
00005 #include <Kokkos_CrsGraph.hpp>
00006 #include <Kokkos_MultiVector.hpp>
00007 #include <Kokkos_DefaultNode.hpp>
00008 #include <Teuchos_BLAS_types.hpp>
00009 
00014 namespace KokkosExamples {
00015 
00020   template <class Node> 
00021   class DummySparseKernel {
00022   public:
00024 
00025 
00027     typedef void  ScalarType;
00029     typedef void OrdinalType;
00031     typedef Node    NodeType;
00033     typedef DummySparseKernel<Node> ThisType;
00034 
00040     template <class T>
00041     struct rebind {
00042       typedef DummySparseKernel<Node> other;
00043     };
00044 
00046 
00047 
00048 
00050     DummySparseKernel(const Teuchos::RCP<Node> & node) : node_(node) {}
00051 
00053     ~DummySparseKernel() {}
00054 
00056 
00057 
00058 
00063     Teuchos::RCP<Node> getNode() const {return node_;}
00064 
00066 
00067 
00068 
00083     template <class Ordinal>
00084     void initializeStructure(const Kokkos::CrsGraph<Ordinal,Node,DummySparseKernel<Node> > & /* graph */) {}
00085 
00101     template <class Scalar, class Ordinal>
00102     void initializeValues(const Kokkos::CrsMatrix<Scalar,Ordinal,Node,DummySparseKernel<Node> > & /* matrix */) {}
00103 
00112     void clear() {}
00113 
00115 
00116 
00117 
00119     template <class DomainScalar, class RangeScalar>
00120     void multiply(Teuchos::ETransp trans, RangeScalar alpha, const Kokkos::MultiVector<DomainScalar,Node> &X, Kokkos::MultiVector<RangeScalar,Node> &Y) const {}
00121 
00123     template <class DomainScalar, class RangeScalar>
00124     void multiply(Teuchos::ETransp trans, 
00125                   RangeScalar alpha, const Kokkos::MultiVector<DomainScalar,Node> &X, RangeScalar beta, Kokkos::MultiVector<RangeScalar,Node> &Y) const {}
00126 
00128     template <class DomainScalar, class RangeScalar>
00129     void solve(Teuchos::ETransp trans, Teuchos::EUplo uplo, Teuchos::EDiag diag, 
00130                const Kokkos::MultiVector<DomainScalar,Node> &Y, Kokkos::MultiVector<RangeScalar,Node> &X) const {}
00131 
00133   protected:
00135     DummySparseKernel(const DummySparseKernel& source);
00136 
00137     Teuchos::RCP<Node> node_;
00138   };
00139 
00144 } // end of namespace KokkosExamples
00145 
00146 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends