Computing SCC ...
[satune.git] / src / Encoders / ordergraph.h
1 /* 
2  * File:   ordergraph.h
3  * Author: hamed
4  *
5  * Created on August 7, 2017, 3:42 PM
6  */
7
8 #ifndef ORDERGRAPH_H
9 #define ORDERGRAPH_H
10 #include "classlist.h"
11 #include "structs.h"
12 #include "mymemory.h"
13
14 struct OrderGraph{
15         HashSetOrderNode* nodes;
16         HashSetOrderEdge* edges;
17         VectorOrderNode scc;
18 };
19
20 OrderGraph* allocOrderGraph();
21 void addOrderConstraintToOrderGraph(OrderGraph* graph, Boolean* constr);
22 OrderNode* getOrderNodeFromOrderGraph(OrderGraph* graph, uint64_t id, Order* order);
23 OrderEdge* getOrderEdgeFromOrderGraph(OrderGraph* graph, Boolean* order, OrderNode* begin, OrderNode* end);
24 void addOrderEdge(OrderGraph* graph, OrderNode* node1, OrderNode* node2, Boolean* constr);
25 void deleteOrderGraph(OrderGraph* graph);
26
27 #endif /* ORDERGRAPH_H */
28