cprover
Loading...
Searching...
No Matches
graphmlt Class Reference

#include <graphml.h>

Inheritance diagram for graphmlt:
Collaboration diagram for graphmlt:

Public Types

typedef std::map< std::string, std::string > key_valuest
Public Types inherited from grapht< xml_graph_nodet >
typedef xml_graph_nodet nodet
typedef nodet::edgest edgest
typedef std::vector< nodetnodest
typedef nodet::edget edget
typedef nodet::node_indext node_indext
typedef std::list< node_indextpatht

Public Member Functions

bool has_node (const std::string &node_name) const
node_indext add_node_if_not_exists (std::string node_name)
Public Member Functions inherited from grapht< xml_graph_nodet >
node_indext add_node (arguments &&... values)
void swap (grapht &other)
bool has_edge (node_indext i, node_indext j) const
const nodetoperator[] (node_indext n) const
void resize (node_indext s)
std::size_t size () const
bool empty () const
const edgestin (node_indext n) const
const edgestout (node_indext n) const
void add_edge (node_indext a, node_indext b)
void remove_edge (node_indext a, node_indext b)
edgetedge (node_indext a, node_indext b)
void add_undirected_edge (node_indext a, node_indext b)
void remove_undirected_edge (node_indext a, node_indext b)
void remove_in_edges (node_indext n)
void remove_out_edges (node_indext n)
void remove_edges (node_indext n)
void clear ()
void shortest_path (node_indext src, node_indext dest, patht &path) const
void shortest_loop (node_indext node, patht &path) const
void visit_reachable (node_indext src)
std::vector< node_indextget_reachable (node_indext src, bool forwards) const
 Run depth-first search on the graph, starting from a single source node.
void disconnect_unreachable (node_indext src)
 Removes any edges between nodes in a graph that are unreachable from a given start node.
std::vector< typename xml_graph_nodet::node_indextdepth_limited_search (typename xml_graph_nodet::node_indext src, std::size_t limit) const
 Run recursive depth-limited search on the graph, starting from multiple source nodes, to find the nodes reachable within n steps.
void make_chordal ()
 Ensure a graph is chordal (contains no 4+-cycles without an edge crossing the cycle) by adding extra edges.
std::size_t connected_subgraphs (std::vector< node_indext > &subgraph_nr)
 Find connected subgraphs in an undirected graph.
std::size_t SCCs (std::vector< node_indext > &subgraph_nr) const
 Computes strongly-connected components of a graph and yields a vector expressing a mapping from nodes to components indices.
bool is_dag () const
std::list< node_indexttopsort () const
 Find a topological order of the nodes if graph is DAG, return empty list for non-DAG or empty graph.
std::vector< node_indextget_predecessors (const node_indext &n) const
std::vector< node_indextget_successors (const node_indext &n) const
void output_dot (std::ostream &out) const
void for_each_predecessor (const node_indext &n, std::function< void(const node_indext &)> f) const
void for_each_successor (const node_indext &n, std::function< void(const node_indext &)> f) const

Public Attributes

key_valuest key_values

Additional Inherited Members

Protected Member Functions inherited from grapht< xml_graph_nodet >
void tarjan (class tarjant &t, node_indext v) const
Protected Attributes inherited from grapht< xml_graph_nodet >
nodest nodes

Detailed Description

Definition at line 43 of file graphml.h.

Member Typedef Documentation

◆ key_valuest

typedef std::map<std::string, std::string> graphmlt::key_valuest

Definition at line 66 of file graphml.h.

Member Function Documentation

◆ add_node_if_not_exists()

node_indext graphmlt::add_node_if_not_exists ( std::string node_name)
inline

Definition at line 55 of file graphml.h.

◆ has_node()

bool graphmlt::has_node ( const std::string & node_name) const
inline

Definition at line 46 of file graphml.h.

Member Data Documentation

◆ key_values

key_valuest graphmlt::key_values

Definition at line 67 of file graphml.h.


The documentation for this class was generated from the following file: