Skip to content

Commit c560b49

Browse files
committed
resolved comments
1 parent 507aba1 commit c560b49

16 files changed

Lines changed: 75 additions & 85 deletions

File tree

include/gl/algorithm/templates/bfs.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ bool bfs(
3434
if (std::ranges::empty(initial_queue_content))
3535
return false;
3636

37-
// prepare the vertex queue
37+
// prepare the node queue
3838
std::queue<search_node<G>> q;
3939
for (const auto& node : initial_queue_content)
4040
q.push(node);

include/gl/algorithm/templates/dfs.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ template <
2424
traits::c_optional_callback<void, typename G::id_type> PostVisitCallback = empty_callback>
2525
bool dfs(
2626
const G& graph,
27-
const InitStackRangeType initial_stack_content,
27+
const InitStackRangeType& initial_stack_content,
2828
VisitVertexPredicate visit_vertex_pred = {},
2929
VisitCallback visit = {},
3030
EnqueueVertexPred enqueue_vertex_pred = {},
@@ -34,7 +34,7 @@ bool dfs(
3434
if (std::ranges::empty(initial_stack_content))
3535
return false;
3636

37-
// prepare the vertex queue
37+
// prepare the node stack
3838
std::stack<search_node<G>> s;
3939
for (const auto& node : initial_stack_content)
4040
s.push(node);

include/gl/algorithm/templates/pfs.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ bool pfs(
3636
if (std::ranges::empty(initial_queue_content))
3737
return false;
3838

39-
// prepare the vertex queue
39+
// prepare the node queue
4040
using queue_type = std::priority_queue<search_node<G>, std::vector<search_node<G>>, PQCompare>;
4141
queue_type q(pq_compare);
4242

include/gl/algorithm/util.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ namespace gl::algorithm {
1414
template <result_discriminator Result, traits::c_graph G>
1515
[[nodiscard]] gl_attr_force_inline non_void_return_type<Result, predecessors_map<G>>
1616
init_predecessors_map(const G& graph) {
17-
using return_type = non_void_return_type<Result, predecessors_map<G>>;
17+
using return_t = non_void_return_type<Result, predecessors_map<G>>;
1818
if constexpr (Result == ret)
19-
return return_type(graph.order(), invalid_id);
19+
return return_t(graph.order(), invalid_id);
2020
else
21-
return return_type();
21+
return return_t();
2222
}
2323

2424
template <traits::c_id_type IdType>

include/hgl/algorithm/core.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ struct search_node {
5757
id_type hyperedge_id = invalid_id;
5858
};
5959

60-
template <hgl::traits::c_hypergraph H>
60+
template <traits::c_hypergraph H>
6161
using search_tree = std::vector<search_node<H>>;
6262

6363
} // namespace algorithm
@@ -77,10 +77,10 @@ namespace algorithm {
7777

7878
enum class traversal_direction : bool { forward, backward };
7979

80-
template <hgl::traits::c_hypergraph H, traversal_direction Dir = traversal_direction::forward>
80+
template <traits::c_hypergraph H, traversal_direction Dir>
8181
struct traversal_policy;
8282

83-
template <hgl::traits::c_undirected_hypergraph H, traversal_direction Dir>
83+
template <traits::c_undirected_hypergraph H, traversal_direction Dir>
8484
struct traversal_policy<H, Dir> {
8585
static auto target_hyperedges(const H& h, typename H::id_type v_id) {
8686
return h.incident_hyperedge_ids(v_id);
@@ -91,7 +91,7 @@ struct traversal_policy<H, Dir> {
9191
}
9292
};
9393

94-
template <hgl::traits::c_bf_directed_hypergraph H>
94+
template <traits::c_bf_directed_hypergraph H>
9595
struct traversal_policy<H, traversal_direction::forward> {
9696
static auto target_hyperedges(const H& h, typename H::id_type v_id) {
9797
return h.out_hyperedge_ids(v_id); // forward star
@@ -102,7 +102,7 @@ struct traversal_policy<H, traversal_direction::forward> {
102102
}
103103
};
104104

105-
template <hgl::traits::c_bf_directed_hypergraph H>
105+
template <traits::c_bf_directed_hypergraph H>
106106
struct traversal_policy<H, traversal_direction::backward> {
107107
static auto target_hyperedges(const H& h, typename H::id_type v_id) {
108108
return h.in_hyperedge_ids(v_id); // backward star

include/hgl/algorithm/templates/bfs.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace hgl::algorithm {
1212

1313
template <
1414
traversal_direction Dir = traversal_direction::forward,
15-
hgl::traits::c_hypergraph H,
15+
traits::c_hypergraph H,
1616
traits::c_forward_range_of<search_node<H>> InitQueueRangeType = std::vector<search_node<H>>,
1717
traits::c_optional_predicate<const search_node<H>&> VisitVertexPredicate = empty_callback,
1818
traits::c_optional_predicate<const search_node<H>&> VisitCallback = empty_callback,
@@ -66,7 +66,7 @@ bool bfs(
6666

6767
for (const auto target_id : policy::target_vertices(hypergraph, he_id)) {
6868
if (target_id == curr_node.vertex_id)
69-
continue; // Skip the source vertex
69+
continue;
7070

7171
search_node<H> tgt_node{target_id, curr_node.vertex_id, he_id};
7272
const auto enqueue = enqueue_vertex_pred(tgt_node);

include/hgl/algorithm/templates/dfs.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace hgl::algorithm {
1212

1313
template <
1414
traversal_direction Dir = traversal_direction::forward,
15-
hgl::traits::c_hypergraph H,
15+
traits::c_hypergraph H,
1616
traits::c_forward_range_of<search_node<H>> InitQueueRangeType = std::vector<search_node<H>>,
1717
traits::c_optional_predicate<const search_node<H>&> VisitVertexPredicate = empty_callback,
1818
traits::c_optional_predicate<const search_node<H>&> VisitCallback = empty_callback,
@@ -66,7 +66,7 @@ bool dfs(
6666

6767
for (const auto target_id : policy::target_vertices(hypergraph, he_id)) {
6868
if (target_id == curr_node.vertex_id)
69-
continue; // Skip the source vertex
69+
continue;
7070

7171
search_node<H> tgt_node{target_id, curr_node.vertex_id, he_id};
7272
const auto enqueue = enqueue_vertex_pred(tgt_node);

include/hgl/algorithm/traversal/backward_search.hpp

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ namespace hgl::algorithm {
1414

1515
template <
1616
result_discriminator Result = ret,
17-
hgl::traits::c_bf_directed_hypergraph H,
17+
traits::c_bf_directed_hypergraph H,
1818
traits::c_forward_range_of<typename H::id_type> RootRange = std::vector<typename H::id_type>,
19-
gl::traits::c_optional_callback<void, const search_node<H>&> PreVisitCallback = empty_callback,
20-
gl::traits::c_optional_callback<void, const search_node<H>&> PostVisitCallback = empty_callback>
19+
traits::c_optional_callback<void, const search_node<H>&> PreVisitCallback = empty_callback,
20+
traits::c_optional_callback<void, const search_node<H>&> PostVisitCallback = empty_callback>
2121
return_type<Result, search_tree<H>> backward_bfs(
2222
const H& hypergraph,
2323
const RootRange& root_vertices,
@@ -34,18 +34,14 @@ return_type<Result, search_tree<H>> backward_bfs(
3434
root_vertices
3535
| std::views::transform([](const id_type root_id) { return search_node<H>{root_id}; });
3636

37-
const auto traverse_hyperedge_pred = [&tail_unvisited](id_type he_id, id_type) {
38-
return static_cast<decision>(--tail_unvisited[gl::to_idx(he_id)] == 0uz);
39-
};
40-
4137
// clang-format off
4238

4339
bfs<traversal_direction::forward>(
4440
hypergraph,
4541
root_queue,
4642
default_visit_vertex_predicate<H>(visited_vertices),
4743
default_visit_callback<H, Result>(visited_vertices, stree),
48-
traverse_hyperedge_pred,
44+
blocking_traverse_hyperedge_predicate(tail_unvisited),
4945
default_enqueue_vertex_predicate<H, true>(visited_vertices),
5046
pre_visit,
5147
post_visit
@@ -59,10 +55,10 @@ return_type<Result, search_tree<H>> backward_bfs(
5955

6056
template <
6157
result_discriminator Result = ret,
62-
hgl::traits::c_bf_directed_hypergraph H,
58+
traits::c_bf_directed_hypergraph H,
6359
traits::c_forward_range_of<typename H::id_type> RootRange = std::vector<typename H::id_type>,
64-
gl::traits::c_optional_callback<void, const search_node<H>&> PreVisitCallback = empty_callback,
65-
gl::traits::c_optional_callback<void, const search_node<H>&> PostVisitCallback = empty_callback>
60+
traits::c_optional_callback<void, const search_node<H>&> PreVisitCallback = empty_callback,
61+
traits::c_optional_callback<void, const search_node<H>&> PostVisitCallback = empty_callback>
6662
return_type<Result, search_tree<H>> backward_dfs(
6763
const H& hypergraph,
6864
const RootRange& root_vertices,
@@ -79,18 +75,14 @@ return_type<Result, search_tree<H>> backward_dfs(
7975
root_vertices
8076
| std::views::transform([](const id_type root_id) { return search_node<H>{root_id}; });
8177

82-
const auto traverse_hyperedge_pred = [&tail_unvisited](id_type he_id, id_type) {
83-
return static_cast<decision>(--tail_unvisited[gl::to_idx(he_id)] == 0uz);
84-
};
85-
8678
// clang-format off
8779

8880
dfs<traversal_direction::forward>(
8981
hypergraph,
9082
root_queue,
9183
default_visit_vertex_predicate<H>(visited_vertices),
9284
default_visit_callback<H, Result>(visited_vertices, stree),
93-
traverse_hyperedge_pred,
85+
blocking_traverse_hyperedge_predicate(tail_unvisited),
9486
default_enqueue_vertex_predicate<H, true>(visited_vertices),
9587
pre_visit,
9688
post_visit

include/hgl/algorithm/traversal/breadth_first_search.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ namespace hgl::algorithm {
1212

1313
template <
1414
result_discriminator Result = ret,
15-
hgl::traits::c_hypergraph H,
16-
gl::traits::c_optional_callback<void, const search_node<H>&> PreVisitCallback = empty_callback,
17-
gl::traits::c_optional_callback<void, const search_node<H>&> PostVisitCallback = empty_callback>
15+
traits::c_hypergraph H,
16+
traits::c_optional_callback<void, const search_node<H>&> PreVisitCallback = empty_callback,
17+
traits::c_optional_callback<void, const search_node<H>&> PostVisitCallback = empty_callback>
1818
return_type<Result, search_tree<H>> breadth_first_search(
1919
const H& hypergraph,
2020
const typename H::id_type root_vertex_id = no_root,

include/hgl/algorithm/traversal/depth_first_search.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ namespace hgl::algorithm {
1212

1313
template <
1414
result_discriminator Result = ret,
15-
hgl::traits::c_hypergraph H,
16-
gl::traits::c_optional_callback<void, const search_node<H>&> PreVisitCallback = empty_callback,
17-
gl::traits::c_optional_callback<void, const search_node<H>&> PostVisitCallback = empty_callback>
15+
traits::c_hypergraph H,
16+
traits::c_optional_callback<void, const search_node<H>&> PreVisitCallback = empty_callback,
17+
traits::c_optional_callback<void, const search_node<H>&> PostVisitCallback = empty_callback>
1818
return_type<Result, search_tree<H>> depth_first_search(
1919
const H& hypergraph,
2020
const typename H::id_type root_vertex_id = no_root,

0 commit comments

Comments
 (0)