61# ifndef AH_GRAPH_CONCEPTS_H
62# define AH_GRAPH_CONCEPTS_H
66# include <type_traits>
72 namespace graph_concepts_detail
81 typename G::Node_Type;
84 requires(
const G & g,
typename G::Arc * a)
86 { g.get_num_nodes() } -> std::convertible_to<std::size_t>;
87 { g.get_num_arcs() } -> std::convertible_to<std::size_t>;
88 { g.get_src_node(a) } -> std::convertible_to<typename G::Node *>;
89 { g.get_tgt_node(a) } -> std::convertible_to<typename G::Node *>;
90 { g.is_digraph() } -> std::convertible_to<bool>;
119 template <
class SN,
class GT>
133 template <
class SA,
class GT>
147 template <
class D,
class GT>
150 requires {
typename D::Distance_Type; }
and
153 { d(a) } -> std::convertible_to<typename D::Distance_Type>;
167 requires {
typename graph_concepts_detail::graph_t<Net>::Flow_Type; }
and
171 { net.get_source() } -> std::convertible_to<typename graph_concepts_detail::graph_t<Net>::Node *>;
172 { net.get_sink() } -> std::convertible_to<typename graph_concepts_detail::graph_t<Net>::Node *>;
173 { net.is_single_source() } -> std::convertible_to<bool>;
174 { net.is_single_sink() } -> std::convertible_to<bool>;
175 { a->cap } -> std::convertible_to<typename graph_concepts_detail::graph_t<Net>::Flow_Type>;
176 { a->flow } -> std::convertible_to<typename graph_concepts_detail::graph_t<Net>::Flow_Type>;
C++20 concepts hub: comparison, BST policy, and Aleph container concepts.
A graph usable by the graph algorithms.
An arc distance (Distance) for graph GT.
An arc filter (SA) for graph GT.
A flow network usable by the max-flow and min-cost algorithms.
A node filter (SN) for graph GT.
f(args...) is a valid call whose result is usable as a condition.
Unqualified form of AlephGraph, applied to a cv/ref-free type.
List_Graph< Graph_Node< string >, Graph_Arc< Empty_Class > > G
size_t blossom_maximum_cardinality_matching(const GT &g, DynDlist< typename GT::Arc * > &matching, SA sa=SA())
Alias of compute_maximum_cardinality_general_matching().
std::remove_cvref_t< GT > graph_t
GT with cv-qualifiers and references removed.
Main namespace for Aleph-w library functions.
and
Check uniqueness with explicit hash + equality functors.