56#ifndef GUM_GRAPH_REACHABILITY_H
57#define GUM_GRAPH_REACHABILITY_H
73 template < GUM_DiGraphable G >
80 template < GUM_DiGraphable G >
84 template < GUM_DiGraphable G >
88 template < GUM_DiGraphable G >
102 template < GUM_UndiGraphable G >
115 template < GUM_NodeGraphable G >
132 template < GUM_UndiGraphable G >
145 template < GUM_MixedGraphable G >
149 template < GUM_MixedGraphable G >
C++20 concepts for aGrUM graph interfaces.
Size NodeId
Type for node ids.
HashTable< NodeId, VAL > NodeProperty
Property on graph elements.
Set< NodeId > NodeSet
Some typdefs and define for shortcuts ...
NodeSet descendants(const G &g, NodeId id)
Returns the set of all descendants of id (nodes reachable from id following arc direction).
NodeSet ancestors(const G &g, NodeId id)
Returns the set of all ancestors of id (nodes from which id is reachable following arc direction).
bool areConnected(const G &g, const NodeSet &A, const NodeSet &B)
Returns true iff some node in A can reach some node in B via undirected edges.
NodeSet boundary(const G &g, NodeId node)
Returns the boundary of node: neighbours ∪ parents ∪ children.
NodeProperty< NodeId > chainComponents(const G &g)
Returns a node-to-component-id mapping for the chain components of g (connected components of the edg...
NodeSet chainComponent(const G &g, NodeId node)
Returns the chain component of node in g.
NodeSet family(const G &g, NodeId id)
Returns the family of id : { id } ∪ parents(id).
NodeProperty< NodeId > connectedComponents(const G &g)
Returns a node-to-component-id mapping for the (weakly) connected components of g.
Template implementations for reachability.h.