1#ifndef CHI_DIRECTED_GRAPH_H
2#define CHI_DIRECTED_GRAPH_H
87 if (count >=
vertices_.size())
return {*
this, count};
112 void AddVertex(
size_t id,
void* context =
nullptr);
115 bool AddEdge(
size_t from,
size_t to,
double weight=1.0);
122 if (v.ds_edge.empty() and not v.us_edge.empty())
131 if (v.us_edge.empty() and not v.ds_edge.empty())
138 std::vector<bool>& visited,
142 std::vector<int>& disc,
143 std::vector<int>& low,
144 std::vector<bool>& on_stack,
145 std::stack<size_t>& stack,
146 std::vector<std::vector<size_t>>& SCCs);
149 std::vector<std::vector<size_t>>
159 int location_mask=0);
VertexAccessor & ref_block
GraphVertex * operator->()
GraphVertex & operator*()
bool operator!=(const iterator &rhs) const
iterator(VertexAccessor &in_block, size_t i)
bool operator==(const iterator &rhs) const
iterator operator++(int junk)
void RemoveVertex(size_t v)
void AddVertex(size_t id, void *context)
std::vector< bool > vertex_valid_flags_
GraphVertex & operator[](size_t v)
std::vector< GraphVertex > vertices_
std::vector< size_t > GenerateTopologicalSort()
void SCCAlgorithm(size_t u, int &time, std::vector< int > &disc, std::vector< int > &low, std::vector< bool > &on_stack, std::stack< size_t > &stack, std::vector< std::vector< size_t > > &SCCs)
std::vector< std::pair< size_t, size_t > > RemoveCyclicDependencies()
void AddVertex(size_t id, void *context=nullptr)
std::vector< size_t > FindApproxMinimumFAS()
void PrintSubGraphviz(const std::vector< int > &verts_to_print, int location_mask=0)
std::vector< std::vector< size_t > > FindStronglyConnectedComponents()
void RemoveEdge(size_t from, size_t to)
void DFSAlgorithm(std::vector< size_t > &traversal, std::vector< bool > &visited, size_t cur_vid)
void RemoveVertex(size_t v)
bool AddEdge(size_t from, size_t to, double weight=1.0)
void PrintGraphviz(int location_mask=0)