38 std::vector<size_t>
order()
const;
47 const std::set<std::pair<size_t, size_t>> &
edges()
const;
64 DisjointSet() =
default;
67 DisjointSet(
size_t n);
70 void resize(
size_t n);
74 size_t root(
size_t node)
const;
86 void unify(
size_t node1,
size_t node2);
89 bool isRoot(
size_t i)
const;
96 size_t rootCompr(
size_t node);
98 std::vector<size_t> parent_;
99 std::vector<size_t> rank_;
118 void SCCUtil(std::vector<std::vector<size_t>> & ret,
120 std::vector<int> & disc,
121 std::vector<int> & low,
122 std::stack<size_t> & st,
123 std::vector<uint8_t> & stackMember,
127 std::pair<std::vector<size_t>, DisjointSet> order_()
const;
139 void orderUtil(
size_t v,
140 std::vector<size_t> & order,
141 std::vector<uint8_t> & visited,
142 std::vector<uint8_t> & stack,
143 DisjointSet & components)
const;
145 std::vector<uint8_t> roots_;
146 std::vector<std::vector<size_t>> children_;
147 std::set<std::pair<size_t, size_t>> edges_;
#define TVM_DLLAPI
Definition: api.h:35
Definition: DependencyGraph.h:20
std::vector< std::vector< size_t > > groupedOrder() const
std::pair< std::vector< std::vector< size_t > >, DependencyGraph > reduce() const
const std::set< std::pair< size_t, size_t > > & edges() const
std::vector< size_t > order() const
bool addEdge(size_t from, size_t to)
void removeNode(size_t id)
Definition: AbstractNode.h:30