MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types > Class Template Reference

Functor that executes a sequence of sub-functors on each block of rows. More...

#include <MueLu_MatrixConstruction.hpp>

Public Member Functions

 VectorCountingFunctor (local_matrix_type &A_, local_ordinal_type blockSize_, block_indices_view_type ghosted_point_to_block_, results_view &results_, rowptr_type &filtered_rowptr_, rowptr_type &graph_rowptr_, functor_type &functor_, remaining_functor_types &...remainingFunctors_)
 
KOKKOS_INLINE_FUNCTION void join (Kokkos::pair< local_ordinal_type, local_ordinal_type > &dest, const Kokkos::pair< local_ordinal_type, local_ordinal_type > &src) const
 
KOKKOS_INLINE_FUNCTION void operatorRow (const local_ordinal_type rlid) const
 
KOKKOS_INLINE_FUNCTION void operator() (const local_ordinal_type brlid, Kokkos::pair< local_ordinal_type, local_ordinal_type > &nnz, const bool &final) const
 

Private Types

using scalar_type = typename local_matrix_type::value_type
 
using local_ordinal_type = typename local_matrix_type::ordinal_type
 
using memory_space = typename local_matrix_type::memory_space
 
using results_view = Kokkos::View< DecisionType *, memory_space >
 
using block_indices_view_type = Kokkos::View< local_ordinal_type *, memory_space >
 
using permutation_type = Kokkos::View< local_ordinal_type *, memory_space >
 
using rowptr_type = typename local_matrix_type::row_map_type::non_const_type
 
using ATS = Kokkos::ArithTraits< local_ordinal_type >
 

Private Attributes

local_matrix_type A
 
local_ordinal_type blockSize
 
block_indices_view_type ghosted_point_to_block
 
results_view results
 
rowptr_type filtered_rowptr
 
rowptr_type graph_rowptr
 
functor_type functor
 
BlockRowComparison
< local_matrix_type > 
comparison
 
permutation_type permutation
 
VectorCountingFunctor
< local_matrix_type,
remaining_functor_types...> 
remainingFunctors
 
std::vector< std::string > functorNames
 

Detailed Description

template<class local_matrix_type, class functor_type, class... remaining_functor_types>
class MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >

Functor that executes a sequence of sub-functors on each block of rows.

The functor applies a series of functors to each row of the matrix. Each sub-functor can modify the decision to drop or keep any matrix entry in the given row. These decisions are applied to the results_view. Once a row has been processed by all sub-functors, the number of entries in the row after dropping is determined. The result is saved as offsets in rowptr.

Definition at line 437 of file MueLu_MatrixConstruction.hpp.

Member Typedef Documentation

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
using MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::scalar_type = typename local_matrix_type::value_type
private

Definition at line 439 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
using MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::local_ordinal_type = typename local_matrix_type::ordinal_type
private

Definition at line 440 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
using MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::memory_space = typename local_matrix_type::memory_space
private

Definition at line 441 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
using MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::results_view = Kokkos::View<DecisionType*, memory_space>
private

Definition at line 442 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
using MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::block_indices_view_type = Kokkos::View<local_ordinal_type*, memory_space>
private

Definition at line 443 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
using MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::permutation_type = Kokkos::View<local_ordinal_type*, memory_space>
private

Definition at line 444 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
using MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::rowptr_type = typename local_matrix_type::row_map_type::non_const_type
private

Definition at line 446 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
using MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::ATS = Kokkos::ArithTraits<local_ordinal_type>
private

Definition at line 447 of file MueLu_MatrixConstruction.hpp.

Constructor & Destructor Documentation

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::VectorCountingFunctor ( local_matrix_type &  A_,
local_ordinal_type  blockSize_,
block_indices_view_type  ghosted_point_to_block_,
results_view results_,
rowptr_type filtered_rowptr_,
rowptr_type graph_rowptr_,
functor_type &  functor_,
remaining_functor_types &...  remainingFunctors_ 
)
inline

Definition at line 466 of file MueLu_MatrixConstruction.hpp.

Member Function Documentation

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
KOKKOS_INLINE_FUNCTION void MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::join ( Kokkos::pair< local_ordinal_type, local_ordinal_type > &  dest,
const Kokkos::pair< local_ordinal_type, local_ordinal_type > &  src 
) const
inline

Definition at line 487 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
KOKKOS_INLINE_FUNCTION void MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::operatorRow ( const local_ordinal_type  rlid) const
inline

Definition at line 493 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
KOKKOS_INLINE_FUNCTION void MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::operator() ( const local_ordinal_type  brlid,
Kokkos::pair< local_ordinal_type, local_ordinal_type > &  nnz,
const bool &  final 
) const
inline

Definition at line 499 of file MueLu_MatrixConstruction.hpp.

Member Data Documentation

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
local_matrix_type MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::A
private

Definition at line 449 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
local_ordinal_type MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::blockSize
private

Definition at line 450 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
block_indices_view_type MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::ghosted_point_to_block
private

Definition at line 451 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
results_view MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::results
private

Definition at line 452 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
rowptr_type MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::filtered_rowptr
private

Definition at line 453 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
rowptr_type MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::graph_rowptr
private

Definition at line 454 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
functor_type MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::functor
private

Definition at line 456 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
BlockRowComparison<local_matrix_type> MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::comparison
private

Definition at line 458 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
permutation_type MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::permutation
private

Definition at line 459 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
VectorCountingFunctor<local_matrix_type, remaining_functor_types...> MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::remainingFunctors
private

Definition at line 461 of file MueLu_MatrixConstruction.hpp.

template<class local_matrix_type , class functor_type , class... remaining_functor_types>
std::vector<std::string> MueLu::MatrixConstruction::VectorCountingFunctor< local_matrix_type, functor_type, remaining_functor_types >::functorNames
private

Definition at line 463 of file MueLu_MatrixConstruction.hpp.


The documentation for this class was generated from the following file: