X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=blobdiff_plain;f=src%2Fccsolver.h;h=86d5a46374541cf88c6f1bd77fc643aedde6e826;hp=c14a3e0cd5ee519ef6b268ddb2cbca6abe650c9f;hb=081e954fa3566ad9a2522ca45bef8e29472d2a72;hpb=806a79424211fba5d68b6b802a6ceea2db47196f diff --git a/src/ccsolver.h b/src/ccsolver.h index c14a3e0..86d5a46 100644 --- a/src/ccsolver.h +++ b/src/ccsolver.h @@ -2,43 +2,52 @@ #define __CCSOLVER_H -typedef void* CCSolver; +typedef void *CCSolver; #ifdef __cplusplus extern "C" { #endif -void* CreateCCSolver(); -void deleteCCSolver(void* solver); -void *createSet(void* solver,unsigned int type, void *elements, unsigned int num); -void *createRangeSet(void* solver,unsigned int type, long lowrange, long highrange); -void *createRangeVar(void* solver,unsigned type, long lowrange, long highrange); -void *createMutableSet(void* solver,unsigned type); -void addItem(void* solver,void *set, long element); -void finalizeMutableSet(void* solver,void *set); -void *getElementVar(void* solver,void *set); -void *getElementConst(void* solver,unsigned type, long value); -void *getElementRange (void* solver,void *element); -void* getBooleanVar(void* solver,unsigned int type); -void *createFunctionOperator(void* solver,unsigned int op, void *domain, unsigned int numDomain, void *range,unsigned int overflowbehavior); -void *createPredicateOperator(void* solver,unsigned int op, void *domain, unsigned int numDomain); -void *createPredicateTable(void* solver,void *table, unsigned int behavior); -void *createTable(void* solver,void*domains, unsigned int numDomain, void *range); -void *createTableForPredicate(void* solver,void*domains, unsigned int numDomain); -void addTableEntry(void* solver,void *table, void *inputs, unsigned int inputSize, long result); -void *completeTable(void* solver,void *table, unsigned int behavior); -void *applyFunction(void* solver,void *function, void*array, unsigned int numArrays, long overflowstatus); -void* applyPredicateTable(void* solver,void *predicate, void *inputs, unsigned int numInputs, long undefinedStatus); -void* applyPredicate(void* solver,void *predicate, void *inputs, unsigned int numInputs); -void* applyLogicalOperation(void* solver,unsigned int op, void *array, unsigned int asize); -void* applyLogicalOperationTwo(void* solver,unsigned int op, long arg1, long arg2); -void* applyLogicalOperationOne(void* solver,unsigned int op, long arg); -void addConstraint(void* solver,void* constraint); -void *createOrder(void* solver,unsigned int type, void *set); -void* orderConstraint(void* solver,void *order, long first, long second); -int solve(void* solver); -long getElementValue(void* solver,void *element); -int getBooleanValue(void* solver,long boolean); -int getOrderConstraintValue(void* solver,void *order, long first, long second); -void printConstraints(void* solver); +void *createCCSolver(); +void deleteCCSolver(void *solver); +void resetCCSolver(void *solver); +void *createSet(void *solver,unsigned int type, long *elements, unsigned int num); +void *createRangeSet(void *solver,unsigned int type, long lowrange, long highrange); +void *createRangeVar(void *solver,unsigned int type, long lowrange, long highrange); +void *createMutableSet(void *solver,unsigned int type); +void addItem(void *solver,void *set, long element); +void finalizeMutableSet(void *solver,void *set); +void *getElementVar(void *solver,void *set); +void *getElementConst(void *solver,unsigned int type, long value); +void *getElementRange (void *solver,void *element); +void *getBooleanVar(void *solver,unsigned int type); +void *getBooleanTrue(void *solver); +void *getBooleanFalse(void *solver); +void *createFunctionOperator(void *solver,unsigned int op, void *range,unsigned int overflowbehavior); +void *createPredicateOperator(void *solver,unsigned int op); +void *createPredicateTable(void *solver,void *table, unsigned int behavior); +void *createTable(void *solver, void *range); +void *createTableForPredicate(void *solver); +void addTableEntry(void *solver,void *table, void *inputs, unsigned int inputSize, long result); +void *completeTable(void *solver,void *table, unsigned int behavior); +void *applyFunction(void *solver,void *function, void **array, unsigned int numArrays, void *overflowstatus); +void *applyPredicateTable(void *solver,void *predicate, void **inputs, unsigned int numInputs, void *undefinedStatus); +void *applyPredicate(void *solver,void *predicate, void **inputs, unsigned int numInputs); +void *applyLogicalOperation(void *solver,unsigned int op, void **array, unsigned int asize); +void *applyExactlyOneConstraint(void *solver,void **array, unsigned int asize); +void *applyLogicalOperationTwo(void *solver,unsigned int op, void *arg1, void *arg2); +void *applyLogicalOperationOne(void *solver,unsigned int op, void *arg); +void addConstraint(void *solver,void *constraint); +void printConstraint(void *solver,void *constraint); +void *createOrder(void *solver,unsigned int type, void *set); +void *orderConstraint(void *solver,void *order, long first, long second); +int solve(void *solver); +long getElementValue(void *solver,void *element); +int getBooleanValue(void *solver,void *boolean); +int getOrderConstraintValue(void *solver,void *order, long first, long second); +void printConstraints(void *solver); +void serialize(void *solver); +void mustHaveValue(void *solver, void *element); +void setInterpreter(void *solver, unsigned int type); +void *clone(void *solver); #ifdef __cplusplus } #endif