angel
mercurial changeset:
|
Line graph type. More...
#include <angel_types.hpp>
Public Types | |
typedef pure_line_graph_t | pure_graph_t |
Type of basic type from BGL. | |
typedef pure_line_graph_t::vertex_descriptor | edge_t |
Edge type. | |
typedef pure_line_graph_t::edge_descriptor | face_t |
Face type. | |
typedef boost::graph_traits < pure_line_graph_t > ::vertex_iterator | ei_t |
Edge iterator type. | |
typedef boost::graph_traits < pure_line_graph_t > ::edge_iterator | fi_t |
Face iterator type. | |
typedef boost::graph_traits < pure_line_graph_t > ::in_edge_iterator | ifi_t |
Iterator type of a edge's incoming faces. | |
typedef boost::graph_traits < pure_line_graph_t > ::out_edge_iterator | ofi_t |
Iterator type of a edge's outgoing faces. | |
typedef boost::property_map < pure_line_graph_t, boost::vertex_degree_t > ::const_type | const_ed_t |
Type of property edge label for const line_graph_t. | |
typedef boost::property_map < pure_line_graph_t, boost::vertex_degree_t >::type | ed_t |
Type of property edge label for non-const line_graph_t. | |
typedef boost::property_map < pure_line_graph_t, boost::vertex_name_t > ::const_type | const_evn_t |
typedef boost::property_map < pure_line_graph_t, boost::vertex_name_t >::type | evn_t |
Public Member Functions | |
int | x () const |
Number of independent vertices. | |
int | y () const |
Number of dependent vertices. | |
int | v () const |
Number of all vertices, including empty. | |
int | z () const |
Number of intermediate vertices. | |
line_graph_t () | |
Default constructor. | |
line_graph_t (int V_, int X_, const std::vector< edge_t > &deps) | |
Constructor with vertex specification. | |
line_graph_t (const c_graph_t &cg) | |
Constructor that builds line graph from c-graph. | |
line_graph_t (const line_graph_t &_g) | |
Copy constructor. | |
~line_graph_t () | |
Destructor. | |
line_graph_t & | operator= (const line_graph_t &_g) |
Assign operator. | |
void | swap (line_graph_t &_g) |
Swap. | |
enum vertex_type_t | vertex_type (edge_t e) const |
Type of edge e . | |
void | copy_properties (const line_graph_t &_g) |
Copies properties explicitly. | |
void | clear_edges () |
Removes edges explicitly. | |
void | clear_graph () |
Remove all vertices that are not connected to dependent and inpedendent vertices. | |
bool | check () const |
Check consistency of graph. | |
bool | is_tripartite () const |
Whether graph is tripartite. | |
Public Attributes | |
std::vector< edge_t > | dependents |
set of dependent vertices | |
const c_graph_t * | cgp |
Pointer to corresponding c-graph. | |
Private Attributes | |
int | X |
bool | cons_ok |
Friends | |
int | face_elimination (face_t face, int kr, line_graph_t &lg, accu_graph_t &ac) |
void | unpack_graph (const graph_package_t &gp, line_graph_t &lg) |
Line graph type.
Type names are related to the c-graph. For instance, a vertex of the line graph is defined as edge_t (since it represent an edge). The types c_graph_t::edge_t and line_graph_t::edge_t are not compatible (see edge_vertex_name and find_edge).
Definition at line 268 of file angel_types.hpp.
typedef boost::property_map<pure_line_graph_t, boost::vertex_degree_t>::const_type angel::line_graph_t::const_ed_t |
Type of property edge label for const line_graph_t.
Definition at line 288 of file angel_types.hpp.
typedef boost::property_map<pure_line_graph_t, boost::vertex_name_t>::const_type angel::line_graph_t::const_evn_t |
Type of edge-vertex-name property for const line_graph_t
This means an edge from line graph corresponds/belongs to an edge in c-graph, which is represented as two integers for the source and the target vertex
Definition at line 296 of file angel_types.hpp.
typedef boost::property_map<pure_line_graph_t, boost::vertex_degree_t>::type angel::line_graph_t::ed_t |
Type of property edge label for non-const line_graph_t.
Definition at line 290 of file angel_types.hpp.
typedef pure_line_graph_t::vertex_descriptor angel::line_graph_t::edge_t |
Edge type.
Definition at line 276 of file angel_types.hpp.
typedef boost::graph_traits<pure_line_graph_t>::vertex_iterator angel::line_graph_t::ei_t |
Edge iterator type.
Definition at line 280 of file angel_types.hpp.
typedef boost::property_map<pure_line_graph_t, boost::vertex_name_t>::type angel::line_graph_t::evn_t |
Type of edge-vertex-name property for non-const line_graph_t
This means an edge from line graph corresponds/belongs to an edge in c-graph, which is represented as two integers for the source and the target vertex
Definition at line 302 of file angel_types.hpp.
typedef pure_line_graph_t::edge_descriptor angel::line_graph_t::face_t |
Face type.
Definition at line 278 of file angel_types.hpp.
typedef boost::graph_traits<pure_line_graph_t>::edge_iterator angel::line_graph_t::fi_t |
Face iterator type.
Definition at line 282 of file angel_types.hpp.
typedef boost::graph_traits<pure_line_graph_t>::in_edge_iterator angel::line_graph_t::ifi_t |
Iterator type of a edge's incoming faces.
Definition at line 284 of file angel_types.hpp.
typedef boost::graph_traits<pure_line_graph_t>::out_edge_iterator angel::line_graph_t::ofi_t |
Iterator type of a edge's outgoing faces.
Definition at line 286 of file angel_types.hpp.
Type of basic type from BGL.
Definition at line 274 of file angel_types.hpp.
angel::line_graph_t::line_graph_t | ( | ) | [inline] |
Default constructor.
Definition at line 314 of file angel_types.hpp.
angel::line_graph_t::line_graph_t | ( | int | V_, |
int | X_, | ||
const std::vector< edge_t > & | deps | ||
) | [inline] |
Constructor with vertex specification.
V_ | number of all vertices |
X_ | number of independent vertices |
deps | set of dependent vertices |
Definition at line 321 of file angel_types.hpp.
References dependents, and THROW_EXCEPT_MACRO.
angel::line_graph_t::line_graph_t | ( | const c_graph_t & | cg | ) |
Constructor that builds line graph from c-graph.
Definition at line 178 of file angel_types.cpp.
References angel::c_graph_t::dependents, angel::overall_markowitz_degree(), angel::renumber_edges(), THROW_DEBUG_EXCEPT_MACRO, angel::c_graph_t::x(), and angel::c_graph_t::y().
angel::line_graph_t::line_graph_t | ( | const line_graph_t & | _g | ) | [inline] |
Copy constructor.
Definition at line 337 of file angel_types.hpp.
angel::line_graph_t::~line_graph_t | ( | ) | [inline] |
Destructor.
Definition at line 342 of file angel_types.hpp.
References clear_edges().
bool angel::line_graph_t::check | ( | ) | const |
Check consistency of graph.
Definition at line 240 of file angel_types.cpp.
void angel::line_graph_t::clear_edges | ( | ) | [inline] |
Removes edges explicitly.
Definition at line 372 of file angel_types.hpp.
Referenced by operator=(), and ~line_graph_t().
void angel::line_graph_t::clear_graph | ( | ) |
Remove all vertices that are not connected to dependent and inpedendent vertices.
Definition at line 299 of file angel_types.cpp.
References angel::reachable_vertices(), and angel::relevant_vertices().
void angel::line_graph_t::copy_properties | ( | const line_graph_t & | _g | ) |
Copies properties explicitly.
Definition at line 403 of file angel_types.cpp.
bool angel::line_graph_t::is_tripartite | ( | ) | const |
Whether graph is tripartite.
Definition at line 287 of file angel_types.cpp.
References angel::dependent, angel::independent, angel::intermediate, and angel::vertex_type().
line_graph_t& angel::line_graph_t::operator= | ( | const line_graph_t & | _g | ) | [inline] |
Assign operator.
Definition at line 345 of file angel_types.hpp.
References cgp, clear_edges(), cons_ok, dependents, and X.
void angel::line_graph_t::swap | ( | line_graph_t & | _g | ) | [inline] |
Swap.
Definition at line 354 of file angel_types.hpp.
References cgp, cons_ok, dependents, and X.
int angel::line_graph_t::v | ( | ) | const [inline] |
Number of all vertices, including empty.
Definition at line 308 of file angel_types.hpp.
Referenced by angel::face_elimination(), angel::operator==(), vertex_type(), angel::was_non_trivial_elimination(), and z().
enum vertex_type_t angel::line_graph_t::vertex_type | ( | edge_t | e | ) | const [inline] |
Type of edge e
.
Definition at line 361 of file angel_types.hpp.
References angel::dead_vertex, angel::dependent, angel::independent, angel::intermediate, angel::undefined_vertex, and v().
int angel::line_graph_t::x | ( | ) | const [inline] |
Number of independent vertices.
Definition at line 306 of file angel_types.hpp.
References X.
Referenced by angel::fmf_obj(), angel::operator==(), angel::xaif_edge_pr(), and z().
int angel::line_graph_t::y | ( | ) | const [inline] |
Number of dependent vertices.
Definition at line 307 of file angel_types.hpp.
References dependents.
Referenced by angel::operator==(), and z().
int angel::line_graph_t::z | ( | ) | const [inline] |
Number of intermediate vertices.
Definition at line 309 of file angel_types.hpp.
Referenced by angel::operator==().
int face_elimination | ( | line_graph_t::face_t | f, |
int | kr, | ||
line_graph_t & | lg, | ||
accu_graph_t & | ac | ||
) | [friend] |
Eliminate face f
from line graph lg
f | the face |
kr | is a request for the number of a new node or the number of the absorbing the face, i.e. if face elimination inserts a new node into lg it should be number with kr and if a new node is immediately absorbed by some node k then it should be k = kr . If the request cannot be satisfied the face is not eliminated. kr = -1 means no request. |
lg | the line graph |
ac | is a container for graphs representing the accumulation code |
void unpack_graph | ( | const graph_package_t & | gp, |
line_graph_t & | lg | ||
) | [friend] |
Pointer to corresponding c-graph.
Definition at line 311 of file angel_types.hpp.
Referenced by angel::face_elimination(), operator=(), and swap().
bool angel::line_graph_t::cons_ok [private] |
Definition at line 271 of file angel_types.hpp.
Referenced by angel::face_elimination(), operator=(), and swap().
std::vector<edge_t> angel::line_graph_t::dependents |
set of dependent vertices
Definition at line 304 of file angel_types.hpp.
Referenced by line_graph_t(), operator=(), angel::operator==(), swap(), and y().
int angel::line_graph_t::X [private] |
Definition at line 270 of file angel_types.hpp.
Referenced by operator=(), swap(), and x().