23 const std::string& droppingMethod,
25 const bool aggregationMayCreateDirichlet,
26 const bool symmetrizeDroppedGraph,
27 const bool useBlocking,
30 auto lclA = A.getLocalMatrixDevice();
33 if (droppingMethod ==
"point-wise") {
36 if (aggregationMayCreateDirichlet) {
39 if (symmetrizeDroppedGraph) {
45 mark_singletons_as_boundary);
52 mark_singletons_as_boundary);
55 if (symmetrizeDroppedGraph) {
69 }
else if (droppingMethod ==
"cut-drop") {
73 if (symmetrizeDroppedGraph) {
static void runDroppingFunctors(matrix_type &A, results_view &results, rowptr_type &filtered_rowptr, LocalOrdinal &nnz_filtered, const bool useBlocking, Level &level, const Factory &factory, Functors &... functors)
static void runDroppingFunctors_on_A(matrix_type &A, results_view &results, rowptr_type &filtered_rowptr, LocalOrdinal &nnz_filtered, boundary_nodes_type &boundaryNodes, const std::string &droppingMethod, const magnitudeType threshold, const bool aggregationMayCreateDirichlet, const bool symmetrizeDroppedGraph, const bool useBlocking, Level &level, const Factory &factory)
auto make_drop_functor(Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A_, typename DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::magnitudeType threshold, typename DropFunctor< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::results_view &results_)
auto make_comparison_functor(Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A_, typename ScaledComparison< Scalar, LocalOrdinal, GlobalOrdinal, Node, measure >::results_view &results_)