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") {
34 auto dropping = ClassicalDropping::make_drop_functor<SoC>(A, threshold, results);
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") {
70 auto comparison = CutDrop::make_comparison_functor<SoC>(A, results);
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)