Give vector more specific type
[satune.git] / src / Encoders / orderencoder.h
1 /* 
2  * File:   orderencoder.h
3  * Author: hamed
4  *
5  * Created on August 8, 2017, 6:36 PM
6  */
7
8 #ifndef ORDERGRAPHBUILDER_H
9 #define ORDERGRAPHBUILDER_H
10 #include "classlist.h"
11 #include "structs.h"
12 #include "mymemory.h"
13
14 OrderGraph* buildOrderGraph(Order *order);
15 void computeStronglyConnectedComponentGraph(OrderGraph* graph);
16 void orderAnalysis(CSolver* solver);
17 void initializeNodeInfoSCC(OrderGraph* graph);
18 void DFSNodeVisit(OrderNode* node, VectorOrderNode* finishNodes, bool isReverse, uint sccNum);
19 void DFS(OrderGraph* graph, VectorOrderNode* finishNodes);
20 void DFSReverse(OrderGraph* graph, VectorOrderNode* finishNodes);
21 void completePartialOrderGraph(OrderGraph* graph);
22 void resetNodeInfoStatusSCC(OrderGraph* graph);
23 void removeMustBeTrueNodes(OrderGraph* graph);
24 void DFSPseudoNodeVisit(OrderGraph *graph, OrderNode* node);
25 void completePartialOrderGraph(OrderGraph* graph);
26 void DFSMust(OrderGraph* graph, VectorOrderNode* finishNodes);
27 void DFSMustNodeVisit(OrderNode* node, VectorOrderNode* finishNodes, bool clearBackEdges);
28 void DFSClearContradictions(OrderGraph* graph, VectorOrderNode* finishNodes);
29 void reachMustAnalysis(OrderGraph *graph);
30 void localMustAnalysisTotal(OrderGraph *graph);
31 void localMustAnalysisPartial(OrderGraph *graph);
32 void orderAnalysis(CSolver* This);
33 void decomposeOrder(Order *order, OrderGraph *graph);
34
35 #endif /* ORDERGRAPHBUILDER_H */
36