edits
[satune.git] / src / Backend / satencoder.h
index f74965b4af8ac92333ca5041d3487e7cacbd7ae7..f88e99370f641aabeef1a5e84e6aefa4fb83123c 100644 (file)
 
 class SATEncoder {
  public:
-       uint varcount;
-       CNF *cnf;
-       CSolver *solver;
-
+       int solve();
        SATEncoder(CSolver *solver);
        ~SATEncoder();
        void encodeAllSATEncoder(CSolver *csolver);
        Edge encodeConstraintSATEncoder(Boolean *constraint);
+       CNF * getCNF() { return cnf;}
+       CSolver * getSolver() { return solver; }
+       long long getSolveTime() { return cnf->solveTime; }
+       long long getEncodeTime() { return cnf->encodeTime; }
+       
        MEMALLOC;
+ private:
+       CNF *cnf;
+       CSolver *solver;
 };
 
+Edge getNewVarSATEncoder(SATEncoder *This);
+void getArrayNewVarsSATEncoder(SATEncoder *encoder, uint num, Edge *carray);
 
-       Edge getNewVarSATEncoder(SATEncoder *This);
-       void getArrayNewVarsSATEncoder(SATEncoder *encoder, uint num, Edge *carray);
-
-       Edge encodeVarSATEncoder(SATEncoder *This, BooleanVar *constraint);
-       Edge encodeLogicSATEncoder(SATEncoder *This, BooleanLogic *constraint);
-       Edge encodePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint);
-       Edge encodeTablePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint);
-       void encodeElementSATEncoder(SATEncoder *encoder, Element *This);
-       void encodeElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This);
-       void encodeTableElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This);
+Edge encodeVarSATEncoder(SATEncoder *This, BooleanVar *constraint);
+Edge encodeLogicSATEncoder(SATEncoder *This, BooleanLogic *constraint);
+Edge encodePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint);
+Edge encodeTablePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint);
+void encodeElementSATEncoder(SATEncoder *encoder, Element *This);
+void encodeElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This);
+void encodeTableElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This);
 #endif