Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Kokkos_DefaultKernels.hpp
00001 #ifndef KOKKOS_DEFAULT_KERNELS_
00002 #define KOKKOS_DEFAULT_KERNELS_
00003 
00004 #include "Kokkos_ConfigDefs.hpp"
00005 #include "Kokkos_DefaultSparseOps.hpp"
00006 #include "Kokkos_DefaultBlockSparseOps.hpp"
00007 #include "Kokkos_DefaultRelaxation.hpp"
00008 
00009 namespace Kokkos {
00010 
00014   template <class Scalar, class Ordinal, class Node>
00015   struct DefaultKernels {
00016     typedef DefaultHostSparseOps <void  ,Ordinal,Node>  SparseOps;
00017     typedef DefaultBlockSparseOps<Scalar,Ordinal,Node>  BlockSparseOps;
00018     typedef DefaultRelaxation    <Scalar,Ordinal,Node>  Relaxations;
00019   };
00020 
00027   class ThrustGPUNode;
00028   template <class Scalar, class Ordinal>
00029   struct DefaultKernels<Scalar,Ordinal,ThrustGPUNode> {
00030     typedef DefaultDeviceSparseOps<void  ,Ordinal,ThrustGPUNode>  SparseOps;
00031     typedef DefaultBlockSparseOps <Scalar,Ordinal,ThrustGPUNode>  BlockSparseOps;
00032     typedef DefaultRelaxation     <Scalar,Ordinal,ThrustGPUNode>  Relaxations;
00033   };
00034 
00035 #ifdef HAVE_KOKKOS_TREAT_SERIALNODE_AS_DEVICE
00036 
00042   class SerialNode;
00043   template <class Scalar, class Ordinal>
00044   struct DefaultKernels<Scalar,Ordinal,SerialNode> {
00045     typedef DefaultDeviceSparseOps<void  ,Ordinal,SerialNode>     SparseOps;
00046     typedef DefaultBlockSparseOps <Scalar,Ordinal,ThrustGPUNode>  BlockSparseOps;
00047     typedef DefaultRelaxation     <Scalar,Ordinal,ThrustGPUNode>  Relaxations;
00048   };
00049 #endif
00050 
00051 }
00052 
00053 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends