Merge branch 'master' into brian
[satune.git] / src / csolver.c
index 5f330fd6112c70074522c17ac116739bf35746d6..d90304431634c30faf0d4fbfad73dd81f6af2743 100644 (file)
@@ -7,6 +7,7 @@
 #include "order.h"
 #include "table.h"
 #include "function.h"
+#include "satencoder.h"
 
 CSolver * allocCSolver() {
        CSolver * tmp=(CSolver *) ourmalloc(sizeof(CSolver));
@@ -117,7 +118,7 @@ Function * createFunctionOperator(CSolver *solver, ArithOp op, Set ** domain, ui
 }
 
 Predicate * createPredicateOperator(CSolver *solver, CompOp op, Set ** domain, uint numDomain) {
-       Predicate* predicate= allocPredicate(op, domain,numDomain);
+       Predicate* predicate= allocPredicateOperator(op, domain,numDomain);
        pushVectorPredicate(solver->allPredicates, predicate);
        return predicate;
 }
@@ -169,3 +170,14 @@ Boolean * orderConstraint(CSolver *solver, Order * order, uint64_t first, uint64
        pushVectorBoolean(solver->allBooleans,constraint);
        return constraint;
 }
+
+void startEncoding(CSolver* solver){
+       naiveEncodingDecision(solver);
+       SATEncoder* satEncoder = allocSATEncoder();
+       encodeAllSATEncoder(solver, satEncoder);
+       int result= solveCNF(satEncoder->cnf);
+       model_print("sat_solver's result:%d\n", result);
+       //For now, let's just delete it, and in future for doing queries 
+       //we may need it.
+       deleteSATEncoder(satEncoder);
+}