MueLu Version of the Day
Loading...
Searching...
No Matches
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

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

◆ scalar_type

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.

◆ local_ordinal_type

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.

◆ memory_space

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.

◆ results_view

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.

◆ block_indices_view_type

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.

◆ permutation_type

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.

◆ rowptr_type

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.

◆ ATS

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

◆ VectorCountingFunctor()

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 468 of file MueLu_MatrixConstruction.hpp.

Member Function Documentation

◆ join()

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 489 of file MueLu_MatrixConstruction.hpp.

◆ operatorRow()

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 495 of file MueLu_MatrixConstruction.hpp.

◆ operator()()

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 501 of file MueLu_MatrixConstruction.hpp.

Member Data Documentation

◆ A

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.

◆ blockSize

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.

◆ ghosted_point_to_block

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.

◆ results

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.

◆ filtered_rowptr

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.

◆ graph_rowptr

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.

◆ functor

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.

◆ comparison

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.

◆ permutation

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.

◆ remainingFunctors

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.


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