99c3938af6ca30dcda4fa9b9963cec93f85f3468
[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 void computeStronglyConnectedComponentGraph(OrderGraph *graph);
15 void orderAnalysis(CSolver *solver);
16 void initializeNodeInfoSCC(OrderGraph *graph);
17 void DFSNodeVisit(OrderNode *node, VectorOrderNode *finishNodes, bool isReverse, bool mustvisit, uint sccNum);
18 void DFS(OrderGraph *graph, VectorOrderNode *finishNodes);
19 void DFSReverse(OrderGraph *graph, VectorOrderNode *finishNodes);
20 void completePartialOrderGraph(OrderGraph *graph);
21 void resetNodeInfoStatusSCC(OrderGraph *graph);
22 void removeMustBeTrueNodes(OrderGraph *graph);
23 void completePartialOrderGraph(OrderGraph *graph);
24 void DFSMust(OrderGraph *graph, VectorOrderNode *finishNodes);
25 void DFSClearContradictions(CSolver *solver, OrderGraph *graph, VectorOrderNode *finishNodes, bool computeTransitiveClosure);
26 void reachMustAnalysis(CSolver *solver, OrderGraph *graph, bool computeTransitiveClosure);
27 void localMustAnalysisTotal(CSolver *solver, OrderGraph *graph);
28 void localMustAnalysisPartial(CSolver *solver, OrderGraph *graph);
29 void orderAnalysis(CSolver *This);
30 void decomposeOrder(CSolver *This, Order *order, OrderGraph *graph);
31
32 #endif/* ORDERGRAPHBUILDER_H */
33