summaryrefslogtreecommitdiff
path: root/src/Collapse
diff options
context:
space:
mode:
authorROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-05-25 19:10:03 +0200
committerROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-05-25 19:10:03 +0200
commited550043dcc5cdf4ddc08aa0fcc09e425b311922 (patch)
treeb9130807266f7cd3a699972e406aa7ce81ab2a61 /src/Collapse
parentac8f1911f157b801abe21aa9bf8f143a1fddcc65 (diff)
Code review: filtered_edge_collapse is not requiring an output_iterator but a callback/functor
Diffstat (limited to 'src/Collapse')
-rw-r--r--src/Collapse/include/gudhi/Flag_complex_sparse_matrix.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/Collapse/include/gudhi/Flag_complex_sparse_matrix.h b/src/Collapse/include/gudhi/Flag_complex_sparse_matrix.h
index e91bcc28..44db25b3 100644
--- a/src/Collapse/include/gudhi/Flag_complex_sparse_matrix.h
+++ b/src/Collapse/include/gudhi/Flag_complex_sparse_matrix.h
@@ -172,8 +172,8 @@ class Flag_complex_sparse_matrix {
}
// Detect and set all indices that are becoming critical
- template<typename FilteredEdgeInsertion>
- void set_edge_critical(Row_index indx, Filtration_value filt, FilteredEdgeInsertion filtered_edge_insert) {
+ template<typename FilteredEdgeOutput>
+ void set_edge_critical(Row_index indx, Filtration_value filt, FilteredEdgeOutput filtered_edge_output) {
#ifdef DEBUG_TRACES
std::cout << "The curent index with filtration value " << indx << ", " << filt << " is primary critical" <<
std::endl;
@@ -193,7 +193,7 @@ class Flag_complex_sparse_matrix {
std::cout << "The curent index became critical " << idx << std::endl;
#endif // DEBUG_TRACES
critical_edge_indicator_[idx] = true;
- filtered_edge_insert({u, v}, filt);
+ filtered_edge_output({u, v}, filt);
std::set<Row_index> inner_effected_indcs = three_clique_indices(idx);
for (auto inr_idx = inner_effected_indcs.rbegin(); inr_idx != inner_effected_indcs.rend(); inr_idx++) {
if (*inr_idx < idx) effected_indices.emplace(*inr_idx);
@@ -336,11 +336,11 @@ class Flag_complex_sparse_matrix {
/** \brief Performs edge collapse in a increasing sequence of the filtration value.
*
- * \tparam FilteredEdgeInsertion is an output iterator that furnishes
- * `({Vertex_handle u, Vertex_handle v}, Filtration_value f)` that will fill the user defined data structure.
+ * \tparam FilteredEdgeOutput is a functor that furnishes `({Vertex_handle u, Vertex_handle v}, Filtration_value f)`
+ * that will get called on the output edges, in non-decreasing order of filtration.
*/
- template<typename FilteredEdgeInsertion>
- void filtered_edge_collapse(FilteredEdgeInsertion filtered_edge_insert) {
+ template<typename FilteredEdgeOutput>
+ void filtered_edge_collapse(FilteredEdgeOutput filtered_edge_output) {
Row_index endIdx = 0;
u_set_removed_edges_.clear();
@@ -374,9 +374,9 @@ class Flag_complex_sparse_matrix {
if (!edge_is_dominated(edge)) {
critical_edge_indicator_[endIdx] = true;
- filtered_edge_insert({u, v}, filt);
+ filtered_edge_output({u, v}, filt);
if (endIdx > 1)
- set_edge_critical(endIdx, filt, filtered_edge_insert);
+ set_edge_critical(endIdx, filt, filtered_edge_output);
}
endIdx++;
}