TuttleOFX  1
tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList > Class Template Reference

#include <InternalGraph.hpp>

Inheritance diagram for tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >:

Public Types

typedef VERTEX Vertex
typedef EDGE Edge
typedef InternalGraph< Vertex,
Edge, OutEdgeList, VertexList,
EdgeList > 
This
typedef boost::adjacency_list
< OutEdgeList, VertexList,
boost::bidirectionalS, Vertex,
Edge, boost::no_property,
EdgeList > 
GraphContainer
typedef boost::graph_traits
< GraphContainer >
::vertex_descriptor 
vertex_descriptor
typedef boost::graph_traits
< GraphContainer >
::edge_descriptor 
edge_descriptor
typedef boost::graph_traits
< GraphContainer >
::vertex_iterator 
vertex_iterator
typedef boost::graph_traits
< GraphContainer >
::edge_iterator 
edge_iterator
typedef boost::graph_traits
< GraphContainer >
::adjacency_iterator 
adjacency_iterator
typedef boost::graph_traits
< GraphContainer >
::out_edge_iterator 
out_edge_iterator
typedef boost::graph_traits
< GraphContainer >
::in_edge_iterator 
in_edge_iterator
typedef boost::graph_traits
< GraphContainer >
::degree_size_type 
degree_t
typedef std::pair
< adjacency_iterator,
adjacency_iterator
adjacency_vertex_range_t
typedef std::pair
< out_edge_iterator,
out_edge_iterator
out_edge_range_t
typedef std::pair
< in_edge_iterator,
in_edge_iterator
in_edge_range_t
typedef std::pair
< vertex_iterator,
vertex_iterator
vertex_range_t
typedef std::pair
< edge_iterator, edge_iterator
edge_range_t
typedef Vertex::Key VertexKey

Public Member Functions

 InternalGraph ()
 InternalGraph (const This &g)
template<typename V , typename E , typename OEL , typename VL , typename EL >
 InternalGraph (const InternalGraph< V, E, OEL, VL, EL > &g)
Thisoperator= (const This &g)
template<typename V , typename E , typename OEL , typename VL , typename EL >
Thisoperator= (const InternalGraph< V, E, OEL, VL, EL > &g)
virtual ~InternalGraph ()
void clear ()
std::size_t getNbEdges () const
std::size_t getNbVertices () const
vertex_descriptor addVertex (const Vertex &prop)
void clearVertex (const vertex_descriptor &vd)
 Remove in and out edges of a Vertex.
void clearVertexInputs (const vertex_descriptor &vd)
void clearVertexOutputs (const vertex_descriptor &vd)
void removeVertex (const vertex_descriptor &vd)
 Remove a Vertex.
void connect (const VertexKey &out, const VertexKey &in, const std::string &inAttr)
void unconnect (const VertexKey &out, const VertexKey &in, const std::string &inAttr)
bool hasEdge (const VertexKey &out, const VertexKey &in, const std::string &inAttr) const
bool hasEdge (const vertex_descriptor &out, const vertex_descriptor &in, const std::string &inAttr) const
edge_descriptor getEdge (const VertexKey &out, const VertexKey &in, const std::string &inAttr) const
out_edge_range_t getEdges (const vertex_descriptor &v1, const vertex_descriptor &v2) const
edge_descriptor addEdge (const vertex_descriptor &v1, const vertex_descriptor &v2, const Edge &prop)
void removeEdge (const edge_descriptor &e)
vertex_descriptorgetVertexDescriptor (const VertexKey &vertexKey)
const vertex_descriptorgetVertexDescriptor (const VertexKey &vertexKey) const
VertexgetVertex (const VertexKey &vertexKey)
const VertexgetVertex (const VertexKey &vertexKey) const
const vertex_descriptor source (const edge_descriptor &e) const
VertexsourceInstance (const edge_descriptor &e)
const VertexsourceInstance (const edge_descriptor &e) const
const vertex_descriptor target (const edge_descriptor &e) const
VertextargetInstance (const edge_descriptor &e)
const VertextargetInstance (const edge_descriptor &e) const
Vertexinstance (const vertex_descriptor &v)
const Vertexinstance (const vertex_descriptor &v) const
Edgeinstance (const edge_descriptor &e)
const Edgeinstance (const edge_descriptor &e) const
GraphContainergetGraph ()
const GraphContainergetGraph () const
edge_range_t getEdges ()
const edge_range_t getEdges () const
in_edge_range_t getInEdges (const vertex_descriptor &v)
const in_edge_range_t getInEdges (const vertex_descriptor &v) const
out_edge_range_t getOutEdges (const vertex_descriptor &v)
const out_edge_range_t getOutEdges (const vertex_descriptor &v) const
vertex_range_t getVertices () const
std::vector< vertex_descriptorgetConnectedVertices (const vertex_descriptor &vroot)
std::vector< vertex_descriptorgetUnconnectedVertices (const vertex_descriptor &vroot)
adjacency_vertex_range_t getAdjacentVertices (const vertex_descriptor &v) const
std::size_t getVertexCount () const
std::size_t getEdgeCount () const
degree_t getInDegree (const vertex_descriptor &v) const
degree_t getOutDegree (const vertex_descriptor &v) const
bool hasCycle ()
template<class Visitor >
void depthFirstVisit (Visitor &vis, const vertex_descriptor &vroot)
template<class Visitor >
void depthFirstVisitReverse (Visitor &vis, const vertex_descriptor &vroot)
template<class Visitor >
void depthFirstSearch (Visitor &vis)
template<class Visitor >
void depthFirstSearchReverse (Visitor &vis)
template<class Visitor >
void depthFirstSearch (Visitor &vis, const vertex_descriptor &vroot)
template<class Visitor >
void depthFirstSearchReverse (Visitor &vis, const vertex_descriptor &vroot)
template<class Visitor >
void breadthFirstSearch (Visitor &vis, const vertex_descriptor &vroot)
template<class Visitor >
void breadthFirstSearch (Visitor &vis)
void copyTransposed (const This &g)
template<typename V , typename E , typename OEL , typename VL , typename EL >
void copyTransposed (const InternalGraph< V, E, OEL, VL, EL > &g)
void toDominatorTree ()
 Create a tree from the graph.
std::vector< vertex_descriptorrootVertices ()
 Create a vector of root vertices, ie. all nodes whithout parents.
std::vector< vertex_descriptorleafVertices ()
 Create a vector of leaf vertices (or external node), ie. all nodes that has zero child node.
std::size_t removeUnconnectedVertices (const vertex_descriptor &vroot)
 Remove all vertices without connection with vroot.

Protected Attributes

GraphContainer _graph
boost::unordered_map
< VertexKey, vertex_descriptor
_vertexDescriptorMap

Private Member Functions

void rebuildVertexDescriptorMap ()

Friends

template<typename Vertex , typename Edge >
std::ostream & operator<< (std::ostream &os, const This &g)

Detailed Description

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
class tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >

Definition at line 54 of file InternalGraph.hpp.


Member Typedef Documentation

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef boost::graph_traits<GraphContainer>::adjacency_iterator tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::adjacency_iterator

Definition at line 78 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef std::pair<adjacency_iterator, adjacency_iterator> tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::adjacency_vertex_range_t

Definition at line 84 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef boost::graph_traits<GraphContainer>::degree_size_type tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::degree_t

Definition at line 82 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef EDGE tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::Edge

Definition at line 58 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef boost::graph_traits<GraphContainer>::edge_descriptor tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::edge_descriptor

Definition at line 74 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef boost::graph_traits<GraphContainer>::edge_iterator tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::edge_iterator

Definition at line 77 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef std::pair<edge_iterator, edge_iterator> tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::edge_range_t

Definition at line 88 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef boost::adjacency_list< OutEdgeList, VertexList, boost::bidirectionalS, Vertex, Edge, boost::no_property, EdgeList > tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::GraphContainer

Definition at line 70 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef boost::graph_traits<GraphContainer>::in_edge_iterator tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::in_edge_iterator

Definition at line 80 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef std::pair<in_edge_iterator, in_edge_iterator> tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::in_edge_range_t

Definition at line 86 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef boost::graph_traits<GraphContainer>::out_edge_iterator tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::out_edge_iterator

Definition at line 79 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef std::pair<out_edge_iterator, out_edge_iterator> tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::out_edge_range_t

Definition at line 85 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef InternalGraph<Vertex, Edge, OutEdgeList, VertexList, EdgeList> tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::This

Definition at line 59 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef VERTEX tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::Vertex

Definition at line 57 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef boost::graph_traits<GraphContainer>::vertex_descriptor tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::vertex_descriptor

Definition at line 73 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef boost::graph_traits<GraphContainer>::vertex_iterator tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::vertex_iterator

Definition at line 76 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef std::pair<vertex_iterator, vertex_iterator> tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::vertex_range_t

Definition at line 87 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
typedef Vertex::Key tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::VertexKey

Definition at line 90 of file InternalGraph.hpp.


Constructor & Destructor Documentation

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::InternalGraph ( ) [inline]

Definition at line 93 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::InternalGraph ( const This g) [inline]

Definition at line 96 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<typename V , typename E , typename OEL , typename VL , typename EL >
tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::InternalGraph ( const InternalGraph< V, E, OEL, VL, EL > &  g) [inline]

Definition at line 102 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
virtual tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::~InternalGraph ( ) [inline, virtual]

Definition at line 126 of file InternalGraph.hpp.


Member Function Documentation

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
edge_descriptor tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::addEdge ( const vertex_descriptor v1,
const vertex_descriptor v2,
const Edge prop 
) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
vertex_descriptor tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::addVertex ( const Vertex prop) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<class Visitor >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::breadthFirstSearch ( Visitor &  vis,
const vertex_descriptor vroot 
) [inline]

Definition at line 466 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<class Visitor >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::breadthFirstSearch ( Visitor &  vis) [inline]

Definition at line 475 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::clear ( ) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::clearVertex ( const vertex_descriptor vd) [inline]

Remove in and out edges of a Vertex.

Definition at line 158 of file InternalGraph.hpp.

Referenced by tuttle::host::graph::InternalGraph< Vertex, Edge >::removeVertex(), and tuttle::host::Graph::unconnect().

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::clearVertexInputs ( const vertex_descriptor vd) [inline]

Definition at line 162 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::clearVertexOutputs ( const vertex_descriptor vd) [inline]

Definition at line 166 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::connect ( const VertexKey out,
const VertexKey in,
const std::string &  inAttr 
) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::copyTransposed ( const This g) [inline]

Definition at line 482 of file InternalGraph.hpp.

Referenced by tuttle::host::graph::ProcessGraph::updateGraph().

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<typename V , typename E , typename OEL , typename VL , typename EL >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::copyTransposed ( const InternalGraph< V, E, OEL, VL, EL > &  g) [inline]

Definition at line 490 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<class Visitor >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::depthFirstSearch ( Visitor &  vis) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<class Visitor >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::depthFirstSearch ( Visitor &  vis,
const vertex_descriptor vroot 
) [inline]

Definition at line 447 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<class Visitor >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::depthFirstSearchReverse ( Visitor &  vis) [inline]

Definition at line 437 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<class Visitor >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::depthFirstSearchReverse ( Visitor &  vis,
const vertex_descriptor vroot 
) [inline]

Definition at line 456 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<class Visitor >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::depthFirstVisit ( Visitor &  vis,
const vertex_descriptor vroot 
) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<class Visitor >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::depthFirstVisitReverse ( Visitor &  vis,
const vertex_descriptor vroot 
) [inline]

Definition at line 408 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
adjacency_vertex_range_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getAdjacentVertices ( const vertex_descriptor v) const [inline]

Definition at line 370 of file InternalGraph.hpp.

template<typename VERTEX , typename EDGE , typename OutEdgeList , typename VertexList , typename EdgeList >
std::vector< typename InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::vertex_descriptor > tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getConnectedVertices ( const vertex_descriptor vroot)

Definition at line 88 of file InternalGraph.tcc.

Referenced by tuttle::host::Graph::getConnectedNodes().

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
edge_descriptor tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getEdge ( const VertexKey out,
const VertexKey in,
const std::string &  inAttr 
) const [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
std::size_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getEdgeCount ( ) const [inline]

Definition at line 374 of file InternalGraph.hpp.

Referenced by tuttle::host::Graph::getNbConnections().

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
out_edge_range_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getEdges ( const vertex_descriptor v1,
const vertex_descriptor v2 
) const [inline]

Definition at line 245 of file InternalGraph.hpp.

Referenced by tuttle::host::graph::ProcessGraph::setupAtTime().

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
edge_range_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getEdges ( ) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const edge_range_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getEdges ( ) const [inline]

Definition at line 358 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
GraphContainer& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getGraph ( ) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const GraphContainer& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getGraph ( ) const [inline]

Definition at line 352 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
degree_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getInDegree ( const vertex_descriptor v) const [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
in_edge_range_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getInEdges ( const vertex_descriptor v) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const in_edge_range_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getInEdges ( const vertex_descriptor v) const [inline]

Definition at line 361 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
std::size_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getNbEdges ( ) const [inline]

Definition at line 136 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
std::size_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getNbVertices ( ) const [inline]

Definition at line 141 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
degree_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getOutDegree ( const vertex_descriptor v) const [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
out_edge_range_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getOutEdges ( const vertex_descriptor v) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const out_edge_range_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getOutEdges ( const vertex_descriptor v) const [inline]

Definition at line 364 of file InternalGraph.hpp.

template<typename VERTEX , typename EDGE , typename OutEdgeList , typename VertexList , typename EdgeList >
std::vector< typename InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::vertex_descriptor > tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getUnconnectedVertices ( const vertex_descriptor vroot)
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
Vertex& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getVertex ( const VertexKey vertexKey) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const Vertex& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getVertex ( const VertexKey vertexKey) const [inline]

Definition at line 291 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
std::size_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getVertexCount ( ) const [inline]

Definition at line 372 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const vertex_descriptor& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getVertexDescriptor ( const VertexKey vertexKey) const [inline]

Definition at line 281 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
vertex_range_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::getVertices ( ) const [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
bool tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::hasCycle ( ) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
bool tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::hasEdge ( const VertexKey out,
const VertexKey in,
const std::string &  inAttr 
) const [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
bool tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::hasEdge ( const vertex_descriptor out,
const vertex_descriptor in,
const std::string &  inAttr 
) const [inline]

Definition at line 218 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const Vertex& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::instance ( const vertex_descriptor v) const [inline]

Definition at line 332 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
Edge& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::instance ( const edge_descriptor e) [inline]

Definition at line 337 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const Edge& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::instance ( const edge_descriptor e) const [inline]

Definition at line 342 of file InternalGraph.hpp.

template<typename VERTEX , typename EDGE , typename OutEdgeList , typename VertexList , typename EdgeList >
std::vector< typename InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::vertex_descriptor > tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::leafVertices ( )

Create a vector of leaf vertices (or external node), ie. all nodes that has zero child node.

Definition at line 65 of file InternalGraph.tcc.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
This& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::operator= ( const This g) [inline]

Definition at line 107 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<typename V , typename E , typename OEL , typename VL , typename EL >
This& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::operator= ( const InternalGraph< V, E, OEL, VL, EL > &  g) [inline]

Definition at line 118 of file InternalGraph.hpp.

template<typename VERTEX , typename EDGE , typename OutEdgeList , typename VertexList , typename EdgeList >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::rebuildVertexDescriptorMap ( ) [private]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::removeEdge ( const edge_descriptor e) [inline]
template<typename VERTEX , typename EDGE , typename OutEdgeList , typename VertexList , typename EdgeList >
std::size_t tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::removeUnconnectedVertices ( const vertex_descriptor vroot)

Remove all vertices without connection with vroot.

Definition at line 132 of file InternalGraph.tcc.

Referenced by tuttle::host::graph::ProcessGraph::relink().

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::removeVertex ( const vertex_descriptor vd) [inline]

Remove a Vertex.

Definition at line 174 of file InternalGraph.hpp.

Referenced by tuttle::host::Graph::removeFromInternalGraph().

template<typename VERTEX , typename EDGE , typename OutEdgeList , typename VertexList , typename EdgeList >
std::vector< typename InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::vertex_descriptor > tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::rootVertices ( )

Create a vector of root vertices, ie. all nodes whithout parents.

Definition at line 52 of file InternalGraph.tcc.

Referenced by tuttle::host::graph::ProcessGraph::updateGraph().

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const vertex_descriptor tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::source ( const edge_descriptor e) const [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
Vertex& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::sourceInstance ( const edge_descriptor e) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const Vertex& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::sourceInstance ( const edge_descriptor e) const [inline]

Definition at line 306 of file InternalGraph.hpp.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const vertex_descriptor tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::target ( const edge_descriptor e) const [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
Vertex& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::targetInstance ( const edge_descriptor e) [inline]
template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
const Vertex& tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::targetInstance ( const edge_descriptor e) const [inline]

Definition at line 321 of file InternalGraph.hpp.

template<typename VERTEX , typename EDGE , typename OutEdgeList , typename VertexList , typename EdgeList >
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::toDominatorTree ( )

Create a tree from the graph.

Definition at line 12 of file InternalGraph.tcc.

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
void tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::unconnect ( const VertexKey out,
const VertexKey in,
const std::string &  inAttr 
) [inline]

Definition at line 200 of file InternalGraph.hpp.

Referenced by tuttle::host::Graph::unconnect().


Friends And Related Function Documentation

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
template<typename Vertex , typename Edge >
std::ostream& operator<< ( std::ostream &  os,
const This g 
) [friend]

Field Documentation

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
GraphContainer tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::_graph [protected]

Definition at line 525 of file InternalGraph.hpp.

Referenced by tuttle::host::graph::InternalGraph< Vertex, Edge >::addEdge(), tuttle::host::graph::InternalGraph< Vertex, Edge >::addVertex(), tuttle::host::graph::InternalGraph< Vertex, Edge >::breadthFirstSearch(), tuttle::host::graph::InternalGraph< Vertex, Edge >::clear(), tuttle::host::graph::InternalGraph< Vertex, Edge >::clearVertex(), tuttle::host::graph::InternalGraph< Vertex, Edge >::clearVertexInputs(), tuttle::host::graph::InternalGraph< Vertex, Edge >::clearVertexOutputs(), tuttle::host::graph::InternalGraph< Vertex, Edge >::copyTransposed(), tuttle::host::graph::InternalGraph< Vertex, Edge >::depthFirstSearch(), tuttle::host::graph::InternalGraph< Vertex, Edge >::depthFirstSearchReverse(), tuttle::host::graph::InternalGraph< Vertex, Edge >::depthFirstVisit(), tuttle::host::graph::InternalGraph< Vertex, Edge >::depthFirstVisitReverse(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getAdjacentVertices(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getEdgeCount(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getEdges(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getGraph(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getInDegree(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getInEdges(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getNbEdges(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getNbVertices(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getOutDegree(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getOutEdges(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getVertexCount(), tuttle::host::graph::InternalGraph< Vertex, Edge >::getVertices(), tuttle::host::graph::InternalGraph< Vertex, Edge >::instance(), tuttle::host::graph::InternalGraph< Vertex, Edge >::operator=(), tuttle::host::graph::InternalGraph< Vertex, Edge >::removeEdge(), tuttle::host::graph::InternalGraph< Vertex, Edge >::removeVertex(), tuttle::host::graph::InternalGraph< Vertex, Edge >::source(), and tuttle::host::graph::InternalGraph< Vertex, Edge >::target().

template<typename VERTEX, typename EDGE, typename OutEdgeList = boost::multisetS, typename VertexList = boost::vecS, typename EdgeList = boost::listS>
boost::unordered_map<VertexKey, vertex_descriptor> tuttle::host::graph::InternalGraph< VERTEX, EDGE, OutEdgeList, VertexList, EdgeList >::_vertexDescriptorMap [protected]

The documentation for this class was generated from the following files: