5 * Created on August 8, 2017, 6:36 PM
8 #ifndef ORDERGRAPHBUILDER_H
9 #define ORDERGRAPHBUILDER_H
10 #include "classlist.h"
14 void computeStronglyConnectedComponentGraph(OrderGraph *graph);
15 void initializeNodeInfoSCC(OrderGraph *graph);
16 void DFSNodeVisit(OrderNode *node, Vector<OrderNode *> *finishNodes, bool isReverse, bool mustvisit, uint sccNum);
17 void DFS(OrderGraph *graph, Vector<OrderNode *> *finishNodes);
18 void DFSReverse(OrderGraph *graph, Vector<OrderNode *> *finishNodes);
19 void completePartialOrderGraph(OrderGraph *graph);
20 void resetNodeInfoStatusSCC(OrderGraph *graph);
21 bool isMustBeTrueNode(OrderNode* node);
22 void bypassMustBeTrueNode(CSolver *This, OrderGraph* graph, OrderNode* node);
23 void removeMustBeTrueNodes(CSolver *This, OrderGraph *graph);
24 void completePartialOrderGraph(OrderGraph *graph);
25 void DFSMust(OrderGraph *graph, Vector<OrderNode *> *finishNodes);
26 void DFSClearContradictions(CSolver *solver, OrderGraph *graph, Vector<OrderNode *> *finishNodes, bool computeTransitiveClosure);
27 void reachMustAnalysis(CSolver *solver, OrderGraph *graph, bool computeTransitiveClosure);
28 void localMustAnalysisTotal(CSolver *solver, OrderGraph *graph);
29 void localMustAnalysisPartial(CSolver *solver, OrderGraph *graph);
31 #endif/* ORDERGRAPHBUILDER_H */