angel::line_graph_t Class Reference

Line graph type. More...

#include <angel_types.hpp>

Collaboration diagram for angel::line_graph_t:

Collaboration graph
[legend]

List of all members.

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_toperator= (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_tdependents
 set of dependent vertices
const c_graph_tcgp
 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)


Detailed Description

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 257 of file angel_types.hpp.


Member Typedef Documentation

typedef pure_line_graph_t angel::line_graph_t::pure_graph_t

Type of basic type from BGL.

Definition at line 263 of file angel_types.hpp.

typedef pure_line_graph_t::vertex_descriptor angel::line_graph_t::edge_t

Edge type.

Definition at line 265 of file angel_types.hpp.

typedef pure_line_graph_t::edge_descriptor angel::line_graph_t::face_t

Face type.

Definition at line 267 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 269 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 271 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 273 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 275 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 277 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 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.


Constructor & Destructor Documentation

angel::line_graph_t::line_graph_t (  )  [inline]

Default constructor.

Definition at line 303 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.

Parameters:
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().

Here is the call graph for this function:

angel::line_graph_t::line_graph_t ( const line_graph_t _g  )  [inline]

Copy constructor.

Definition at line 326 of file angel_types.hpp.

angel::line_graph_t::~line_graph_t (  )  [inline]

Destructor.

Definition at line 331 of file angel_types.hpp.

References clear_edges().

Here is the call graph for this function:


Member Function Documentation

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.

References v(), x(), and y().

Referenced by angel::operator==().

Here is the call graph for this function:

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.

Here is the call graph for this function:

void angel::line_graph_t::swap ( line_graph_t _g  )  [inline]

Swap.

Note:
Properties not swapped properly!

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().

Here is the call graph for this function:

void angel::line_graph_t::copy_properties ( const line_graph_t _g  ) 

Copies properties explicitly.

Definition at line 395 of file angel_types.cpp.

void angel::line_graph_t::clear_edges (  )  [inline]

Removes edges explicitly.

Note:
It seems that BGL does not remove all edges in assignment.

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.

Here is the call graph for this function:

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:


Friends And Related Function Documentation

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

Parameters:
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
Returns:
The number of node inserted or where the absorption took place.

void unpack_graph ( const graph_package_t &  gp,
line_graph_t lg 
) [friend]


Member Data Documentation

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().

const c_graph_t* angel::line_graph_t::cgp

Pointer to corresponding c-graph.

Definition at line 300 of file angel_types.hpp.

Referenced by angel::face_elimination(), operator=(), and swap().


The documentation for this class was generated from the following files:
Generated on Wed Mar 11 10:34:37 2009 for angel by  doxygen 1.5.3