Commit after resolving conflicts
[satune.git] / src / csolver.c
index a7af8d304d1a66bcb3029967d992f6a0294a46ea..b35680caae5b7a7a8f29710d32cdc2cae4c3edbf 100644 (file)
@@ -139,15 +139,19 @@ Function * completeTable(CSolver *solver, Table * table) {
 }
 
 Element * applyFunction(CSolver *solver, Function * function, Element ** array, uint numArrays, Boolean * overflowstatus) {
-       return NULL;
+    Element* element= allocElementFunction(function,array,numArrays,overflowstatus);
+    pushVectorElement(solver->allElements, element);
+    return element;
 }
 
 Boolean * applyPredicate(CSolver *solver, Predicate * predicate, Element ** inputs, uint numInputs) {
-       return NULL;
+    Boolean* boolean= allocBooleanPredicate(predicate, inputs, numInputs);
+    pushVectorBoolean(solver->allBooleans, boolean);
+    return boolean;
 }
 
-Boolean * applyLogicalOperation(CSolver *solver, LogicOp op, Boolean ** array) {
-       return NULL;
+Boolean * applyLogicalOperation(CSolver *solver, LogicOp op, Boolean ** array, uint asize) {
+    return allocBooleanLogicArray(solver, op, array, asize);
 }
 
 void addBoolean(CSolver *This, Boolean * constraint) {