7#ifndef KERNEL_LAFEM_ARCH_LUMPING_HPP 
    8#define KERNEL_LAFEM_ARCH_LUMPING_HPP 1 
   12#include <kernel/backend.hpp> 
   23        template <
typename DT_, 
typename IT_>
 
   24        static void csr(DT_ * lump, 
const DT_ * 
const val, 
const IT_ * 
const col_ind, 
const IT_ * 
const row_ptr, 
const Index rows)
 
   26          csr_generic(lump, val, col_ind, row_ptr, rows);
 
   29        static void csr(
float * lump, 
const float * 
const val, 
const std::uint64_t * 
const col_ind, 
const std::uint64_t * 
const row_ptr, 
const Index rows)
 
   31          BACKEND_SKELETON_VOID(csr_cuda, csr_generic, csr_generic, lump, val, col_ind, row_ptr, rows)
 
   34        static void csr(
double * lump, 
const double * 
const val, 
const std::uint64_t * 
const col_ind, 
const std::uint64_t * 
const row_ptr, 
const Index rows)
 
   36          BACKEND_SKELETON_VOID(csr_cuda, csr_generic, csr_generic, lump, val, col_ind, row_ptr, rows)
 
   39        static void csr(
float * lump, 
const float * 
const val, 
const std::uint32_t * 
const col_ind, 
const std::uint32_t * 
const row_ptr, 
const Index rows)
 
   41          BACKEND_SKELETON_VOID(csr_cuda, csr_generic, csr_generic, lump, val, col_ind, row_ptr, rows)
 
   44        static void csr(
double * lump, 
const double * 
const val, 
const std::uint32_t * 
const col_ind, 
const std::uint32_t * 
const row_ptr, 
const Index rows)
 
   46          BACKEND_SKELETON_VOID(csr_cuda, csr_generic, csr_generic, lump, val, col_ind, row_ptr, rows)
 
   49        template <
typename DT_, 
typename IT_>
 
   50        static void csr_generic(DT_ * lump, 
const DT_ * 
const val, 
const IT_ * 
const col_ind, 
const IT_ * 
const row_ptr, 
const Index rows);
 
   52        template <
typename DT_, 
typename IT_>
 
   53        static void bcsr(DT_ * lump, 
const DT_ * 
const val, 
const IT_ * 
const col_ind, 
const IT_ * 
const row_ptr, 
const Index rows, 
const int BlockHeight, 
const int BlockWidth)
 
   55          bcsr_generic(lump, val, col_ind, row_ptr, rows, BlockHeight, BlockWidth);
 
   58        static void bcsr(
float * lump, 
const float * 
const val, 
const std::uint64_t * 
const col_ind, 
const std::uint64_t * 
const row_ptr, 
const Index rows, 
const int BlockHeight, 
const int BlockWidth)
 
   60          BACKEND_SKELETON_VOID(bcsr_cuda, bcsr_generic, bcsr_generic, lump, val, col_ind, row_ptr, rows, BlockHeight, BlockWidth)
 
   63        static void bcsr(
double * lump, 
const double * 
const val, 
const std::uint64_t * 
const col_ind, 
const std::uint64_t * 
const row_ptr, 
const Index rows, 
const int BlockHeight, 
const int BlockWidth)
 
   65          BACKEND_SKELETON_VOID(bcsr_cuda, bcsr_generic, bcsr_generic, lump, val, col_ind, row_ptr, rows, BlockHeight, BlockWidth)
 
   68        static void bcsr(
float * lump, 
const float * 
const val, 
const std::uint32_t * 
const col_ind, 
const std::uint32_t * 
const row_ptr, 
const Index rows, 
const int BlockHeight, 
const int BlockWidth)
 
   70          BACKEND_SKELETON_VOID(bcsr_cuda, bcsr_generic, bcsr_generic, lump, val, col_ind, row_ptr, rows, BlockHeight, BlockWidth)
 
   73        static void bcsr(
double * lump, 
const double * 
const val, 
const std::uint32_t * 
const col_ind, 
const std::uint32_t * 
const row_ptr, 
const Index rows, 
const int BlockHeight, 
const int BlockWidth)
 
   75          BACKEND_SKELETON_VOID(bcsr_cuda, bcsr_generic, bcsr_generic, lump, val, col_ind, row_ptr, rows, BlockHeight, BlockWidth)
 
   78        template <
typename DT_, 
typename IT_>
 
   79        static void bcsr_generic(DT_* lump, 
const DT_* 
const val, 
const IT_* 
const col_ind, 
const IT_ * 
const row_ptr, 
const Index rows, 
const int BlockHeight, 
const int BlockWidth);
 
   81        template <
typename DT_, 
typename IT_>
 
   82        static void csr_cuda(DT_ * lump, 
const DT_ * 
const val, 
const IT_ * 
const col_ind, 
const IT_ * 
const row_ptr, 
const Index rows);
 
   84        template <
typename DT_, 
typename IT_>
 
   85        static void bcsr_cuda(DT_ * lump, 
const DT_ * 
const val, 
const IT_ * 
const col_ind, 
const IT_ * 
const row_ptr, 
const Index rows, 
const int BlockHeight, 
const int BlockWidth);
 
   89      extern template void Lumping::csr_generic(
float *, 
const float * 
const, 
const Index * 
const, 
const Index * 
const, 
const Index);
 
   90      extern template void Lumping::csr_generic(
double *, 
const double * 
const, 
const Index * 
const, 
const Index * 
const, 
const Index);
 
   92      extern template void Lumping::bcsr_generic(
float *, 
const float * 
const, 
const Index * 
const, 
const Index * 
const, 
const Index, 
const int, 
const int);
 
   93      extern template void Lumping::bcsr_generic(
double *, 
const double * 
const, 
const Index * 
const, 
const Index * 
const, 
const Index, 
const int, 
const int);
 
  101#include <kernel/lafem/arch/lumping_generic.hpp> 
std::uint64_t Index
Index data type.