X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2FBackend%2Fsatencoder.h;h=36cbc7727a95df9241e114217dfd9df01010ab6f;hb=85a1c6a1e244ce63a74d53e7c9055a6c7abdc6b8;hp=937db2bce7533d240a85d03a08a00e01aff65f3f;hpb=99ace3f73ea93950e8a8a38c5aa086f1b535cf48;p=satune.git diff --git a/src/Backend/satencoder.h b/src/Backend/satencoder.h index 937db2b..36cbc77 100644 --- a/src/Backend/satencoder.h +++ b/src/Backend/satencoder.h @@ -6,28 +6,30 @@ struct SATEncoder { uint varcount; - //regarding managing memory - VectorConstraint vars; - VectorConstraint allConstraints; }; -static inline VectorConstraint* getSATEncoderVars(SATEncoder* ne){ - return &ne->vars; -} -static inline VectorConstraint* getSATEncoderAllConstraints(SATEncoder* ne){ - return &ne->allConstraints; -} SATEncoder * allocSATEncoder(); void deleteSATEncoder(SATEncoder *This); -void initializeConstraintVars(CSolver* csolver, SATEncoder* This); void encodeAllSATEncoder(CSolver *csolver, SATEncoder *This); Constraint * getNewVarSATEncoder(SATEncoder *This); void getArrayNewVarsSATEncoder(SATEncoder* encoder, uint num, Constraint **carray); Constraint * encodeConstraintSATEncoder(SATEncoder *This, Boolean *constraint); Constraint * encodeOrderSATEncoder(SATEncoder *This, BooleanOrder * constraint); +Constraint * createAllTotalOrderConstraintsSATEncoder(SATEncoder* This, Order* order); +Constraint* getOrderConstraint(HashTableBoolConst *table, OrderPair *pair); +Constraint * generateTransOrderConstraintSATEncoder(SATEncoder *This, Constraint *constIJ,Constraint *constJK,Constraint *constIK); +Constraint * encodeTotalOrderSATEncoder(SATEncoder *This, BooleanOrder * constraint); +Constraint * encodePartialOrderSATEncoder(SATEncoder *This, BooleanOrder * constraint); Constraint * encodeVarSATEncoder(SATEncoder *This, BooleanVar * constraint); Constraint * encodeLogicSATEncoder(SATEncoder *This, BooleanLogic * constraint); Constraint * encodePredicateSATEncoder(SATEncoder * This, BooleanPredicate * constraint); +Constraint * encodeTablePredicateSATEncoder(SATEncoder * This, BooleanPredicate * constraint); +Constraint * encodeEnumTablePredicateSATEncoder(SATEncoder * This, BooleanPredicate * constraint); +Constraint * encodeOperatorPredicateSATEncoder(SATEncoder * This, BooleanPredicate * constraint); +Constraint * encodeEnumOperatorPredicateSATEncoder(SATEncoder * This, BooleanPredicate * constraint); + +Constraint * getElementValueBinaryIndexConstraint(Element* This, uint64_t value); +Constraint * getElementValueConstraint(SATEncoder* encoder, Element* This, uint64_t value); Constraint* encodeFunctionElementSATEncoder(SATEncoder* encoder, ElementFunction *This); Constraint* encodeEnumTableElemFunctionSATEncoder(SATEncoder* encoder, ElementFunction* This);