From: bdemsky Date: Fri, 16 Jun 2017 20:19:59 +0000 (-0700) Subject: edits X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=commitdiff_plain;h=35ae27b48376374ffc686be246d56ac7665b3a81 edits --- diff --git a/src/AST/ops.h b/src/AST/ops.h index 3990aec..40febd4 100644 --- a/src/AST/ops.h +++ b/src/AST/ops.h @@ -11,8 +11,9 @@ enum OrderType {PARTIAL, TOTAL}; * FLAGIFFOVERFLOW -- flag is set iff the operation overflows * IGNORE -- doesn't constrain output if the result cannot be represented * WRAPAROUND -- wraps around like stand integer arithmetic + * NOOVERFLOW -- client has ensured that overflow is impossible */ -enum OverFlowBehavior {IGNORE, WRAPAROUND, FLAGFORCESOVERFLOW, OVERFLOWSETSFLAG, FLAGIFFOVERFLOW}; +enum OverFlowBehavior {IGNORE, WRAPAROUND, FLAGFORCESOVERFLOW, OVERFLOWSETSFLAG, FLAGIFFOVERFLOW, NOOVERFLOW}; enum BooleanType {_ORDER, _BOOLEAN}; diff --git a/src/classlist.h b/src/classlist.h index 361dcb6..b53e031 100644 --- a/src/classlist.h +++ b/src/classlist.h @@ -54,6 +54,12 @@ typedef struct ElementEncoding ElementEncoding; struct FunctionEncoding; typedef struct FunctionEncoding FunctionEncoding; +typedef enum ArithOp ArithOp; +typedef enum LogicOp LogicOp; +typedef enum CompOp CompOp; +typedef enum OrderType OrderType; +typedef enum OverFlowBehavior OverFlowBehavior; + typedef unsigned int uint; typedef uint64_t VarType; #endif diff --git a/src/csolver.c b/src/csolver.c index 1d1413a..9ddfe3d 100644 --- a/src/csolver.c +++ b/src/csolver.c @@ -83,12 +83,12 @@ Boolean * getBooleanVar(CSolver *solver, VarType type) { return boolean; } -Function * createFunctionOperator(CSolver *solver, enum ArithOp op, Set ** domain, uint numDomain, Set * range, - enum OverFlowBehavior overflowbehavior, Boolean * overflowstatus) { +Function * createFunctionOperator(CSolver *solver, ArithOp op, Set ** domain, uint numDomain, Set * range, + OverFlowBehavior overflowbehavior) { return NULL; } -Predicate * createPredicateOperator(CSolver *solver, enum CompOp op, Set ** domain, uint numDomain) { +Predicate * createPredicateOperator(CSolver *solver, CompOp op, Set ** domain, uint numDomain) { return allocPredicate(op, domain,numDomain); } @@ -103,7 +103,7 @@ Function * completeTable(CSolver *solver, Table * table) { return NULL; } -Element * applyFunction(CSolver *solver, Function * function, Element ** array) { +Element * applyFunction(CSolver *solver, Function * function, Element ** array, Boolean * overflowstatus) { return NULL; } @@ -111,7 +111,7 @@ Boolean * applyPredicate(CSolver *solver, Predicate * predicate, Element ** inpu return NULL; } -Boolean * applyLogicalOperation(CSolver *solver, enum LogicOp op, Boolean ** array) { +Boolean * applyLogicalOperation(CSolver *solver, LogicOp op, Boolean ** array) { return NULL; } @@ -119,7 +119,7 @@ void addBoolean(CSolver *this, Boolean * constraint) { pushVectorBoolean(this->constraints, constraint); } -Order * createOrder(CSolver *solver, enum OrderType type, Set * set) { +Order * createOrder(CSolver *solver, OrderType type, Set * set) { return allocOrder(type, set); } diff --git a/src/csolver.h b/src/csolver.h index d11523b..d3bce42 100644 --- a/src/csolver.h +++ b/src/csolver.h @@ -54,8 +54,8 @@ Boolean * getBooleanVar(CSolver *, VarType type); /** This function creates a function operator. */ -Function * createFunctionOperator(CSolver *solver, enum ArithOp op, Set ** domain, uint numDomain, Set * range, - enum OverFlowBehavior overflowbehavior, Boolean * overflowstatus); +Function * createFunctionOperator(CSolver *solver, ArithOp op, Set ** domain, uint numDomain, Set * range, + OverFlowBehavior overflowbehavior); /** This function creates a predicate operator. */ @@ -75,7 +75,7 @@ Function * completeTable(CSolver *, Table *); /** This function applies a function to the Elements in its input. */ -Element * applyFunction(CSolver *, Function * function, Element ** array); +Element * applyFunction(CSolver *, Function * function, Element ** array, Boolean * overflowstatus); /** This function applies a predicate to the Elements in its input. */