#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) |
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 257 of file angel_types.hpp.
typedef pure_line_graph_t::vertex_descriptor angel::line_graph_t::edge_t |
typedef pure_line_graph_t::edge_descriptor angel::line_graph_t::face_t |
typedef boost::graph_traits<pure_line_graph_t>::vertex_iterator angel::line_graph_t::ei_t |
typedef boost::graph_traits<pure_line_graph_t>::edge_iterator angel::line_graph_t::fi_t |
typedef boost::graph_traits<pure_line_graph_t>::in_edge_iterator angel::line_graph_t::ifi_t |
typedef boost::graph_traits<pure_line_graph_t>::out_edge_iterator angel::line_graph_t::ofi_t |
typedef boost::property_map<pure_line_graph_t, boost::vertex_degree_t>::const_type angel::line_graph_t::const_ed_t |
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 279 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 285 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 291 of file angel_types.hpp.
angel::line_graph_t::line_graph_t | ( | ) | [inline] |
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 310 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 170 of file angel_types.cpp.
References cons_ok, dependents, angel::c_graph_t::dependents, angel::overall_markowitz_degree(), angel::renumber_edges(), THROW_DEBUG_EXCEPT_MACRO, X, angel::c_graph_t::x(), and angel::c_graph_t::y().
angel::line_graph_t::line_graph_t | ( | const line_graph_t & | _g | ) | [inline] |
angel::line_graph_t::~line_graph_t | ( | ) | [inline] |
Destructor.
Definition at line 331 of file angel_types.hpp.
References clear_edges().
int angel::line_graph_t::x | ( | ) | const [inline] |
Number of independent vertices.
Definition at line 295 of file angel_types.hpp.
References X.
Referenced by check(), 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 296 of file angel_types.hpp.
References dependents.
Referenced by check(), angel::operator==(), and z().
int angel::line_graph_t::v | ( | ) | const [inline] |
Number of all vertices, including empty.
Definition at line 297 of file angel_types.hpp.
Referenced by check(), clear_graph(), angel::face_elimination(), angel::operator==(), angel::accu_graph_t::set_jacobi_entries(), vertex_type(), angel::was_non_trivial_elimination(), and z().
int angel::line_graph_t::z | ( | ) | const [inline] |
Number of intermediate vertices.
Definition at line 298 of file angel_types.hpp.
Referenced by angel::operator==().
line_graph_t& angel::line_graph_t::operator= | ( | const line_graph_t & | _g | ) | [inline] |
Assign operator.
Definition at line 334 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 343 of file angel_types.hpp.
References cgp, cons_ok, dependents, and X.
enum vertex_type_t angel::line_graph_t::vertex_type | ( | edge_t | e | ) | const [inline] |
Type of edge e
.
Definition at line 350 of file angel_types.hpp.
References angel::dead_vertex, angel::dependent, angel::independent, angel::intermediate, angel::undefined_vertex, and v().
Referenced by is_tripartite(), angel::markowitz_degree(), angel::overall_markowitz_degree(), and angel::accu_graph_t::set_jacobi_entries().
void angel::line_graph_t::copy_properties | ( | const line_graph_t & | _g | ) |
void angel::line_graph_t::clear_edges | ( | ) | [inline] |
Removes edges explicitly.
Definition at line 361 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 291 of file angel_types.cpp.
References dependents, angel::reachable_vertices(), angel::relevant_vertices(), v(), and X.
bool angel::line_graph_t::check | ( | ) | const |
Check consistency of graph.
Definition at line 232 of file angel_types.cpp.
References dependents, v(), x(), and y().
Referenced by angel::accu_graph_t::set_jacobi_entries().
bool angel::line_graph_t::is_tripartite | ( | ) | const |
Whether graph is tripartite.
Definition at line 279 of file angel_types.cpp.
References angel::dependent, angel::independent, angel::intermediate, and vertex_type().
Referenced by angel::accu_graph_t::set_jacobi_entries().
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] |
int angel::line_graph_t::X [private] |
Definition at line 259 of file angel_types.hpp.
Referenced by clear_graph(), line_graph_t(), operator=(), swap(), and x().
bool angel::line_graph_t::cons_ok [private] |
Definition at line 260 of file angel_types.hpp.
Referenced by angel::face_elimination(), line_graph_t(), operator=(), and swap().
std::vector<edge_t> angel::line_graph_t::dependents |
set of dependent vertices
Definition at line 293 of file angel_types.hpp.
Referenced by check(), clear_graph(), line_graph_t(), operator=(), angel::operator==(), swap(), and y().
Pointer to corresponding c-graph.
Definition at line 300 of file angel_types.hpp.
Referenced by angel::face_elimination(), operator=(), and swap().