#include <angel_types.hpp>
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_t & | operator= (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_t > | dependents |
| 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) |
Definition at line 79 of file angel_types.hpp.
| typedef pure_c_graph_t::vertex_descriptor angel::c_graph_t::vertex_t |
| typedef pure_c_graph_t::edge_descriptor angel::c_graph_t::edge_t |
| typedef boost::graph_traits<pure_c_graph_t>::vertex_iterator angel::c_graph_t::vi_t |
| typedef boost::graph_traits<pure_c_graph_t>::edge_iterator angel::c_graph_t::ei_t |
| typedef boost::graph_traits<pure_c_graph_t>::in_edge_iterator angel::c_graph_t::iei_t |
| typedef boost::graph_traits<pure_c_graph_t>::out_edge_iterator angel::c_graph_t::oei_t |
| typedef boost::property_map<pure_c_graph_t, boost::edge_weight_t>::const_type angel::c_graph_t::const_ew_t |
| 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 100 of file angel_types.hpp.
| typedef boost::property_map<pure_c_graph_t, boost::edge_index_t>::const_type angel::c_graph_t::const_eind_t |
| 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 104 of file angel_types.hpp.
| typedef boost::property_map<pure_c_graph_t, EdgeType>::const_type angel::c_graph_t::const_etype_t |
| 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 108 of file angel_types.hpp.
| angel::c_graph_t::c_graph_t | ( | ) | [inline] |
| angel::c_graph_t::c_graph_t | ( | int | V_, | |
| int | X_, | |||
| const std::vector< vertex_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 123 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.
| X_ | number of independent vertices | |
| Z_ | number of intermediated vertices | |
| Y_ | number of dependent vertices, will be located at the end |
Definition at line 140 of file angel_types.hpp.
References dependents.
| angel::c_graph_t::c_graph_t | ( | const c_graph_t & | _g | ) | [inline] |
Assign operator.
Definition at line 156 of file angel_types.hpp.
References clear_edges(), dependents, next_edge_number, and X.

| void angel::c_graph_t::swap | ( | c_graph_t & | _g | ) | [inline] |
Swap.
Definition at line 164 of file angel_types.hpp.
References dependents, next_edge_number, and X.
Referenced by angel::permutate_vertices(), angel::random_statement(), angel::read_graph_eliad(), angel::remove_parallel_edges(), and angel::stats2block().
| int angel::c_graph_t::x | ( | ) | const [inline] |
Number of independent variables.
Definition at line 169 of file angel_types.hpp.
References X.
Referenced by angel::block2loop(), angel::fme_obj(), angel::in_out_path_lengths(), angel::independent_vertices_to_front(), angel::line_graph_t::line_graph_t(), angel::number_independent_vertices(), angel::operator==(), angel::ourLCG_to_angelLCG(), angel::permutate_vertices(), angel::remove_parallel_edges(), angel::rme_obj(), angel::stats2block(), and z().
| void angel::c_graph_t::x | ( | int | x | ) | [inline] |
| int angel::c_graph_t::y | ( | ) | const [inline] |
Number of dependent variables.
Definition at line 171 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::v | ( | ) | const [inline] |
Number of variables.
Definition at line 172 of file angel_types.hpp.
Referenced by angel::block2loop(), clear_graph(), angel::independent_vertices_to_front(), angel::minimal_markowitz_degree(), angel::operator==(), angel::permutate_vertices(), angel::remove_parallel_edges(), angel::stats2block(), angel::take_over_successors(), vertex_type(), and z().
| int angel::c_graph_t::z | ( | ) | const [inline] |
Number of intermediate vertices.
Definition at line 173 of file angel_types.hpp.
Referenced by angel::operator==().

| enum vertex_type_t angel::c_graph_t::vertex_type | ( | vertex_t | ve | ) | const [inline] |
Vertex type of v.
Definition at line 176 of file angel_types.hpp.
References angel::dead_vertex, angel::dependent, dependents, angel::independent, angel::intermediate, angel::undefined_vertex, v(), and X.
Referenced by angel::back_edge_elimination(), check(), check_initial(), angel::eliminatable_vertices(), angel::front_edge_elimination(), angel::remove_hoisting_vertices(), angel::remove_trivial_edges(), and angel::semi_eliminatable_vertices().

| bool angel::c_graph_t::check | ( | ) | const |
Check consistency of graph.
Definition at line 22 of file angel_types.cpp.
References angel::dependent, angel::independent, vertex_type(), and angel::write_graph().
Referenced by check_initial().

| bool angel::c_graph_t::check_initial | ( | ) | const |
Check consistency of initial graph.
Definition at line 55 of file angel_types.cpp.
References check(), angel::dependent, angel::independent, and vertex_type().
Referenced by angel::read_graph_eliad().

| void angel::c_graph_t::remove_dependents_with_successors | ( | ) |
Change dependent vertices with successor into intermediate vertices.
Definition at line 71 of file angel_types.cpp.
References dependents.
| void angel::c_graph_t::clear_edges | ( | ) | [inline] |
Removes edges explicitly.
Definition at line 192 of file angel_types.hpp.
Referenced by operator=().
| void angel::c_graph_t::clear_graph | ( | ) |
Remove all vertices that are not connected to dependent and inpedendent vertices.
Definition at line 80 of file angel_types.cpp.
References dependents, angel::reachable_vertices(), angel::relevant_vertices(), v(), and X.
Referenced by angel::block2loop().

| int read_graph_eliad | ( | const std::string & | file_name, | |
| c_graph_t & | cg, | |||
| bool | retry | |||
| ) | [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.
| inputs | The number of the block's inputs | |
| outputs | The number of the block's outputs | |
| stats | List of statements | |
| block | The resulting block |
Generates a DAG that represents a loop over the block.
| block | The used block | |
| loops | The number of loops | |
| loop | The resulting loop DAG |
| void unpack_graph | ( | const graph_package_t & | gp, | |
| c_graph_t & | cg | |||
| ) | [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] |
int angel::c_graph_t::X [private] |
Definition at line 81 of file angel_types.hpp.
Referenced by angel::block2loop(), clear_graph(), operator=(), angel::read_graph_eliad(), angel::read_graph_xaif_booster(), swap(), vertex_type(), and x().
useful for insertion of new edges
Definition at line 110 of file angel_types.hpp.
Referenced by angel::back_edge_elimination(), angel::block2loop(), angel::front_edge_elimination(), angel::multiply_edge_pair_directly(), operator=(), angel::pair_elim(), angel::pairElim_noJAE(), angel::postroute_edge_directly(), angel::postrouteEdge_noJAE(), angel::preroute_edge_directly(), angel::prerouteEdge_noJAE(), and swap().
| std::vector<vertex_t> angel::c_graph_t::dependents |
set of dependent vertices
Definition at line 112 of file angel_types.hpp.
Referenced by angel::block2loop(), c_graph_t(), clear_graph(), xaifBoosterCrossCountryInterface::compute_elimination_sequence_lsa_vertex(), angel::line_graph_t::line_graph_t(), angel::number_dependent_vertices(), operator=(), angel::operator==(), angel::ourLCG_to_angelLCG(), angel::permutate_vertices(), angel::read_graph_eliad(), angel::read_graph_xaif_booster(), remove_dependents_with_successors(), angel::remove_parallel_edges(), angel::stats2block(), swap(), angel::vertex_eliminatable(), vertex_type(), and y().
1.5.3