struct OrderGraph{
HashSetOrderNode* nodes;
+ HashSetOrderEdge* edges;
+ VectorOrderNode scc;
};
OrderGraph* allocOrderGraph();
-
+void addOrderConstraintToOrderGraph(OrderGraph* graph, Boolean* constr);
+OrderNode* getOrderNodeFromOrderGraph(OrderGraph* graph, uint64_t id);
+OrderEdge* getOrderEdgeFromOrderGraph(OrderGraph* graph, Boolean* order, OrderNode* begin, OrderNode* end);
+void addOrderEdge(OrderGraph* graph, OrderNode* node1, OrderNode* node2, Boolean* constr);
void deleteOrderGraph(OrderGraph* graph);
#endif /* ORDERGRAPH_H */