X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=blobdiff_plain;f=src%2Fcsolver.c;h=5ddaaeda13e13e79db6bb291f2705418217241c4;hp=d1b0f5830420ba46a4c2cb3ef87f18262d4bcb3a;hb=fdf0e45c309033c29b504a69dfe1e9ab0e2e2ff7;hpb=70b6717f45d3d104316e652522f4e7b0c02186b2 diff --git a/src/csolver.c b/src/csolver.c index d1b0f58..5ddaaed 100644 --- a/src/csolver.c +++ b/src/csolver.c @@ -2,6 +2,8 @@ #include "set.h" #include "mutableset.h" #include "element.h" +#include "boolean.h" +#include "predicate.h" CSolver * allocCSolver() { CSolver * tmp=(CSolver *) ourmalloc(sizeof(CSolver)); @@ -66,26 +68,29 @@ Element * getElementVar(CSolver *this, Set * set) { } Boolean * getBooleanVar(CSolver *solver, VarType type) { - return NULL; + Boolean* boolean= allocBoolean(type); + pushVectorBoolean(solver->constraints, boolean); + return boolean; } -Function * createFunctionOperator(CSolver *solver, enum ArithOp op, Set ** domain, Set * range, enum OverFlowBehavior overflowbehavior, Boolean * overflowstatus) { +Function * createFunctionOperator(CSolver *solver, enum ArithOp op, Set ** domain, uint numDomain, Set * range, + enum OverFlowBehavior overflowbehavior, Boolean * overflowstatus) { return NULL; } -Function * createFunctionOperatorPure(CSolver *solver, enum ArithOp op) { - return NULL; -} +//Function * createFunctionOperatorPure(CSolver *solver, enum ArithOp op) { +// return NULL; +//} -Predicate * createPredicateOperator(CSolver *solver, enum CompOp op, Set ** domain) { - return NULL; +Predicate * createPredicateOperator(CSolver *solver, enum CompOp op, Set ** domain, uint numDomain) { + return allocPredicate(op, domain,numDomain); } -Table * createTable(CSolver *solver, Set **domains, Set * range) { +Table * createTable(CSolver *solver, Set **domains, uint numDomain, Set * range) { return NULL; } -void addTableEntry(CSolver *solver, Element ** inputs, Element *result) { +void addTableEntry(CSolver *solver, uint64_t* inputs, uint inputSize, uint64_t result) { } Function * completeTable(CSolver *solver, Table * table) { @@ -109,9 +114,11 @@ void addBoolean(CSolver *this, Boolean * constraint) { } Order * createOrder(CSolver *solver, enum OrderType type, Set * set) { - return NULL; + return allocOrder(type, set); } Boolean * orderConstraint(CSolver *solver, Order * order, uint64_t first, uint64_t second) { - return NULL; + Boolean* constraint = allocBooleanOrder(order, first, second); + pushVectorBoolean(solver->constraints,constraint); + return constraint; }