angel  mercurial changeset:
angel::c_graph_t Class Reference

C-graph type. More...

#include <angel_types.hpp>

List of all members.

Public Types

typedef pure_c_graph_t pure_graph_t
 Type of basic type from BGL.
typedef
pure_c_graph_t::vertex_descriptor 
vertex_t
 Vertex type.
typedef
pure_c_graph_t::edge_descriptor 
edge_t
 Edge type.
typedef boost::graph_traits
< pure_c_graph_t >
::vertex_iterator 
vi_t
 Vertex iterator type.
typedef boost::graph_traits
< pure_c_graph_t >
::edge_iterator 
ei_t
 Edge iterator type.
typedef boost::graph_traits
< pure_c_graph_t >
::in_edge_iterator 
iei_t
 Iterator type of a vertex's incoming edges.
typedef boost::graph_traits
< pure_c_graph_t >
::out_edge_iterator 
oei_t
 Iterator type of a vertex's outgoing edges.
typedef boost::property_map
< pure_c_graph_t,
boost::edge_weight_t >
::const_type 
const_ew_t
 Type of property edge label for const c_graph_t.
typedef boost::property_map
< pure_c_graph_t,
boost::edge_weight_t >::type 
ew_t
 Type of property edge label for non-const c_graph_t.
typedef boost::property_map
< pure_c_graph_t,
boost::edge_index_t >
::const_type 
const_eind_t
 Type of property edge index for const c_graph_t.
typedef boost::property_map
< pure_c_graph_t,
boost::edge_index_t >::type 
eind_t
 Type of property edge index for non-const c_graph_t.
typedef boost::property_map
< pure_c_graph_t, EdgeType >
::const_type 
const_etype_t
 Type of property edge isUnit for const c_graph_t.
typedef boost::property_map
< pure_c_graph_t, EdgeType >
::type 
etype_t
 Type of property edge isUnit for non-const c_graph_t.

Public Member Functions

 c_graph_t ()
 Default constructor.
 c_graph_t (int V_, int X_, const std::vector< vertex_t > &deps)
 Constructor with vertex specification.
 c_graph_t (int X_, int Z_, int Y_)
 Constructor with vertex specification.
 c_graph_t (const c_graph_t &_g)
 Copy constructor.
c_graph_toperator= (const c_graph_t &_g)
 Assign operator.
void swap (c_graph_t &_g)
 Swap.
int x () const
 Number of independent variables.
void x (int x)
 Number of independent variables.
int y () const
 Number of dependent variables.
int v () const
 Number of variables.
int z () const
 Number of intermediate vertices.
enum vertex_type_t vertex_type (vertex_t ve) const
 Vertex type of v.
bool check () const
 Check consistency of graph.
bool check_initial () const
 Check consistency of initial graph.
void remove_dependents_with_successors ()
 Change dependent vertices with successor into intermediate vertices.
void clear_edges ()
 Removes edges explicitly.
void clear_graph ()
 Remove all vertices that are not connected to dependent and inpedendent vertices.

Public Attributes

int next_edge_number
 useful for insertion of new edges
std::vector< vertex_tdependents
 set of dependent vertices

Private Attributes

int X

Friends

int read_graph_eliad (const std::string &file_name, c_graph_t &cg, bool retry)
void stats2block (int inputs, int outputs, const std::vector< c_graph_t > &stats, c_graph_t &block)
 Build a block from a list of statements.
void block2loop (const c_graph_t &block, int loops, c_graph_t &loop)
 Generates a DAG that represents a loop over the block.
void unpack_graph (const graph_package_t &gp, c_graph_t &cg)
void read_graph_xaif_booster (const xaifBoosterCrossCountryInterface::LinearizedComputationalGraph &xg, c_graph_t &cg, std::vector< const xaifBoosterCrossCountryInterface::LinearizedComputationalGraphVertex * > &av, std::vector< edge_address_t > &ev)

Detailed Description

C-graph type.

Definition at line 90 of file angel_types.hpp.


Member Typedef Documentation

typedef boost::property_map<pure_c_graph_t, boost::edge_index_t>::const_type angel::c_graph_t::const_eind_t

Type of property edge index for const c_graph_t.

Definition at line 113 of file angel_types.hpp.

typedef boost::property_map<pure_c_graph_t, EdgeType>::const_type angel::c_graph_t::const_etype_t

Type of property edge isUnit for const c_graph_t.

Definition at line 117 of file angel_types.hpp.

typedef boost::property_map<pure_c_graph_t, boost::edge_weight_t>::const_type angel::c_graph_t::const_ew_t

Type of property edge label for const c_graph_t.

Definition at line 109 of file angel_types.hpp.

typedef pure_c_graph_t::edge_descriptor angel::c_graph_t::edge_t

Edge type.

Definition at line 99 of file angel_types.hpp.

typedef boost::graph_traits<pure_c_graph_t>::edge_iterator angel::c_graph_t::ei_t

Edge iterator type.

Definition at line 103 of file angel_types.hpp.

typedef boost::property_map<pure_c_graph_t, boost::edge_index_t>::type angel::c_graph_t::eind_t

Type of property edge index for non-const c_graph_t.

Definition at line 115 of file angel_types.hpp.

typedef boost::property_map<pure_c_graph_t, EdgeType>::type angel::c_graph_t::etype_t

Type of property edge isUnit for non-const c_graph_t.

Definition at line 119 of file angel_types.hpp.

typedef boost::property_map<pure_c_graph_t, boost::edge_weight_t>::type angel::c_graph_t::ew_t

Type of property edge label for non-const c_graph_t.

Definition at line 111 of file angel_types.hpp.

typedef boost::graph_traits<pure_c_graph_t>::in_edge_iterator angel::c_graph_t::iei_t

Iterator type of a vertex's incoming edges.

Definition at line 105 of file angel_types.hpp.

typedef boost::graph_traits<pure_c_graph_t>::out_edge_iterator angel::c_graph_t::oei_t

Iterator type of a vertex's outgoing edges.

Definition at line 107 of file angel_types.hpp.

Type of basic type from BGL.

Definition at line 95 of file angel_types.hpp.

typedef pure_c_graph_t::vertex_descriptor angel::c_graph_t::vertex_t

Vertex type.

Definition at line 97 of file angel_types.hpp.

typedef boost::graph_traits<pure_c_graph_t>::vertex_iterator angel::c_graph_t::vi_t

Vertex iterator type.

Definition at line 101 of file angel_types.hpp.


Constructor & Destructor Documentation

Default constructor.

Definition at line 126 of file angel_types.hpp.

angel::c_graph_t::c_graph_t ( int  V_,
int  X_,
const std::vector< vertex_t > &  deps 
) [inline]

Constructor with vertex specification.

Parameters:
V_number of all vertices
X_number of independent vertices
depsset of dependent vertices

Definition at line 134 of file angel_types.hpp.

References dependents, and THROW_EXCEPT_MACRO.

angel::c_graph_t::c_graph_t ( int  X_,
int  Z_,
int  Y_ 
) [inline]

Constructor with vertex specification.

Parameters:
X_number of independent vertices
Z_number of intermediated vertices
Y_number of dependent vertices, will be located at the end

Definition at line 151 of file angel_types.hpp.

References dependents.

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

Copy constructor.

Definition at line 162 of file angel_types.hpp.


Member Function Documentation

bool angel::c_graph_t::check ( ) const

Check consistency of graph.

Definition at line 30 of file angel_types.cpp.

References angel::dependent, angel::independent, angel::vertex_type(), and angel::write_graph().

Here is the call graph for this function:

Check consistency of initial graph.

Definition at line 63 of file angel_types.cpp.

References angel::dependent, angel::independent, and angel::vertex_type().

Referenced by angel::read_graph_eliad().

Here is the call graph for this function:

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

Removes edges explicitly.

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

Definition at line 203 of file angel_types.hpp.

Referenced by operator=().

Remove all vertices that are not connected to dependent and inpedendent vertices.

Definition at line 88 of file angel_types.cpp.

References angel::reachable_vertices(), and angel::relevant_vertices().

Referenced by angel::block2loop().

Here is the call graph for this function:

c_graph_t& angel::c_graph_t::operator= ( const c_graph_t _g) [inline]

Assign operator.

Definition at line 167 of file angel_types.hpp.

References clear_edges(), dependents, next_edge_number, and X.

Here is the call graph for this function:

Change dependent vertices with successor into intermediate vertices.

Definition at line 79 of file angel_types.cpp.

void angel::c_graph_t::x ( int  x) [inline]

Number of independent variables.

Definition at line 181 of file angel_types.hpp.

References X, and x().

Referenced by x().

Here is the call graph for this function:

int angel::c_graph_t::y ( ) const [inline]

Number of dependent variables.

Definition at line 182 of file angel_types.hpp.

References dependents.

Referenced by angel::block2loop(), angel::line_graph_t::line_graph_t(), angel::operator==(), and z().

int angel::c_graph_t::z ( ) const [inline]

Number of intermediate vertices.

Definition at line 184 of file angel_types.hpp.

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

Referenced by angel::operator==().

Here is the call graph for this function:


Friends And Related Function Documentation

void block2loop ( const c_graph_t block,
int  loops,
c_graph_t loop 
) [friend]

Generates a DAG that represents a loop over the block.

Parameters:
blockThe used block
loopsThe number of loops
loopThe resulting loop DAG
int read_graph_eliad ( const std::string &  file_name,
c_graph_t cg,
bool  retry 
) [friend]
void read_graph_xaif_booster ( const xaifBoosterCrossCountryInterface::LinearizedComputationalGraph &  xg,
c_graph_t cg,
std::vector< const xaifBoosterCrossCountryInterface::LinearizedComputationalGraphVertex * > &  av,
std::vector< edge_address_t > &  ev 
) [friend]
void stats2block ( int  inputs,
int  outputs,
const std::vector< c_graph_t > &  stats,
c_graph_t block 
) [friend]

Build a block from a list of statements.

Parameters:
inputsThe number of the block's inputs
outputsThe number of the block's outputs
statsList of statements
blockThe resulting block
void unpack_graph ( const graph_package_t &  gp,
c_graph_t cg 
) [friend]

Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines