TVM  0.9.4
tvm::graph::internal::DependencyGraph Class Reference

#include <tvm/graph/internal/DependencyGraph.h>

Public Member Functions

size_t addNode ()
 
void removeNode (size_t id)
 
bool addEdge (size_t from, size_t to)
 
std::pair< std::vector< std::vector< size_t > >, DependencyGraphreduce () const
 
std::vector< size_t > order () const
 
std::vector< std::vector< size_t > > groupedOrder () const
 
size_t size () const
 
const std::set< std::pair< size_t, size_t > > & edges () const
 
void clear ()
 

Detailed Description

An oriented graph to represent dependencies between nodes.

An edge (f, t) represents a dependency from f on t.

Member Function Documentation

◆ addEdge()

bool tvm::graph::internal::DependencyGraph::addEdge ( size_t  from,
size_t  to 
)

Add an edge from node with id from to node with id to. Return true if this indeed creates a new edge, false if this edge was already present.

◆ addNode()

size_t tvm::graph::internal::DependencyGraph::addNode ( )

Create a node and return its id.

◆ clear()

void tvm::graph::internal::DependencyGraph::clear ( )

Clear the graph.

◆ edges()

const std::set<std::pair<size_t, size_t> >& tvm::graph::internal::DependencyGraph::edges ( ) const

List of edges

◆ groupedOrder()

std::vector<std::vector<size_t> > tvm::graph::internal::DependencyGraph::groupedOrder ( ) const

Return the list of node groups. Each group corresponds to a connected component of the graph seen as non-oriented. Within each group the nodes are sorted in reversed topological order.

◆ order()

std::vector<size_t> tvm::graph::internal::DependencyGraph::order ( ) const

Return the list of nodes in reversed topological order.

◆ reduce()

std::pair<std::vector<std::vector<size_t> >, DependencyGraph> tvm::graph::internal::DependencyGraph::reduce ( ) const

Return the reduced graph of this graph as a pair (v,g) v is a list of groups of vertices, each group corresponding to a strongly connected component. g is the direct acyclic graph between these groups

◆ removeNode()

void tvm::graph::internal::DependencyGraph::removeNode ( size_t  id)

Remove a node and all its associated edges

◆ size()

size_t tvm::graph::internal::DependencyGraph::size ( ) const

Number of vertices


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