1 #ifndef ORDERANALYSIS_H
2 #define ORDERANALYSIS_H
7 void computeStronglyConnectedComponentGraph(OrderGraph *graph);
8 void initializeNodeInfoSCC(OrderGraph *graph);
9 void DFSNodeVisit(OrderNode *node, Vector<OrderNode *> *finishNodes, bool isReverse, bool mustvisit, uint sccNum);
10 void DFS(OrderGraph *graph, Vector<OrderNode *> *finishNodes);
11 void DFSReverse(OrderGraph *graph, Vector<OrderNode *> *finishNodes);
12 void completePartialOrderGraph(OrderGraph *graph);
13 void resetNodeInfoStatusSCC(OrderGraph *graph);
14 bool isMustBeTrueNode(OrderNode *node);
15 void bypassMustBeTrueNode(CSolver *This, OrderGraph *graph, OrderNode *node);
16 void removeMustBeTrueNodes(CSolver *This, OrderGraph *graph);
17 void DFSMust(OrderGraph *graph, Vector<OrderNode *> *finishNodes);
18 void DFSClearContradictions(CSolver *solver, OrderGraph *graph, Vector<OrderNode *> *finishNodes, bool computeTransitiveClosure);
19 void reachMustAnalysis(CSolver *solver, OrderGraph *graph, bool computeTransitiveClosure);
20 void localMustAnalysisTotal(CSolver *solver, OrderGraph *graph);
21 void localMustAnalysisPartial(CSolver *solver, OrderGraph *graph);