|
HLIBpro
1.2
|
Class for a undirected graph stored as adjacency matrix in CRS representation.
#include <TGraph.hh>
Classes | |
| class | TIterator |
| Class for iterating through adjacent nodes. More... | |
Public Member Functions | |
| TGraph () | |
| construct empty graph | |
| TGraph (const TSparseMatrix *S, const std::vector< bool > &nodemask) | |
| virtual | ~TGraph () |
| dtor | |
| size_t | n_nodes () const |
| return number of nodes in graph | |
| size_t | n_edges () const |
| return number of edges in graph | |
| bool | has_global_names () const |
| return true, if graph stores global names | |
| size_t | degree (const node_t node) const |
| return degree of node, e.g. number of incident edges | |
| TIterator | adj_nodes_iter (const node_t node) const |
| return iterator to adjacent nodes of node | |
| virtual void | init (const size_t nnodes, const size_t nedges, const bool global=false) |
| std::vector< node_t > & | adj_nodes () |
| return adjacency data | |
| std::vector< idx_t > & | adj_list_ptr () |
| return adjacency pointer data | |
| std::vector< node_t > & | global_name () |
| return global name data | |
| node_t | min_degree_node () const |
| return node with minimal degree in given graph | |
| node_t | max_degree_node () const |
| return node with maximal degree in given graph | |
| void | build_scc (std::list< TNodeSet > &scc, const std::vector< uint > &label, const uint mark) const |
| compute strongly connected components and build graph for each component | |
| void | build_scc (std::list< TNodeSet > &scc) const |
| compute strongly connected components and build nodeset for each component | |
| virtual TGraph * | restrict (const TNodeSet &nodes) const |
| restrict graph to nodes in nodes and store result in subgraph | |
| void | vertex_separator (std::vector< uint > &label, const TNodeSet &left, const TNodeSet &right, TNodeSet &vertex_sep, const uint if_label) const |
| virtual bool | has_edge_weights () const |
| return false to show that Graph has no edge weights | |
| virtual weight_t | edge_weight (const idx_t) const |
| return edge weight for i'th edge | |
| virtual void | set_edge_weight (const idx_t, const weight_t) |
| set edge weight for i'th edge | |
| virtual weight_t | min_edge_weight () const |
| return the minimal absolute value of the edge weights of TEWGraph | |
| void | print (const String &filename, const bool global=false) const |
| print graph in GraphViz format to filename | |
| void | print (const String &filename, const std::vector< uint > &label, const bool global=false) const |
| print graph in GraphViz format to filename with labels in label | |
| virtual void | write (const String &filename) const |
| export graph in Chaco/Jostle/Metis format to filename | |
| TGraph & | operator= (const TGraph &graph) |
| copy operator | |
| virtual TGraph * | create () const |
| virtual constructor, e.g. return object of same type | |
Protected Attributes | |
| std::vector< idx_t > | _adj_list_ptr |
| contains pointers into adjacency list for each node | |
| std::vector< node_t > | _adj_nodes |
| contains list of adjacent nodes for each node | |
| std::vector< node_t > | _global_name |
| global name of local nodes | |
| TGraph | ( | const TSparseMatrix * | S, |
| const std::vector< bool > & | nodemask | ||
| ) |
construct graph using symmetrised sparsity pattern of matrix S; nodes marked in nodemask, i.e. nodemask[node] = true, will be excluded from graph
| void build_scc | ( | std::list< TNodeSet > & | scc, |
| const std::vector< uint > & | label, | ||
| const uint | mark | ||
| ) | const |
compute strongly connected components but restrict computation to nodes marked by mark, where node marks are stored in label
|
inlinevirtual |
initialise graph for nnnodes nodes and nedges edges
Reimplemented in TEWGraph.
restrict graph to nodes in nodes and return resulting subgraph
1.8.1.2