X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=blobdiff_plain;f=src%2FBackend%2Fsatencoder.h;h=f74965b4af8ac92333ca5041d3487e7cacbd7ae7;hp=dee131dc5b4dd584962e0e20d000d76fcad8f3c9;hb=c25ce5e80da20bb0eac14f371900bbf79bebb9b2;hpb=4646025e50b9fd4a754cb6b036c3166072e95d90 diff --git a/src/Backend/satencoder.h b/src/Backend/satencoder.h index dee131d..f74965b 100644 --- a/src/Backend/satencoder.h +++ b/src/Backend/satencoder.h @@ -5,32 +5,33 @@ #include "structs.h" #include "inc_solver.h" #include "constraint.h" - -struct SATEncoder { - uint varcount; - CNF *cnf; - CSolver *solver; -}; - #include "satelemencoder.h" #include "satorderencoder.h" #include "satfunctableencoder.h" -SATEncoder *allocSATEncoder(CSolver *solver); -void deleteSATEncoder(SATEncoder *This); -void encodeAllSATEncoder(CSolver *csolver, SATEncoder *This); -Edge getNewVarSATEncoder(SATEncoder *This); -void getArrayNewVarsSATEncoder(SATEncoder *encoder, uint num, Edge *carray); -Edge encodeConstraintSATEncoder(SATEncoder *This, Boolean *constraint); -Edge encodeVarSATEncoder(SATEncoder *This, BooleanVar *constraint); -Edge encodeLogicSATEncoder(SATEncoder *This, BooleanLogic *constraint); -Edge encodePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint); -Edge encodeTablePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint); +class SATEncoder { + public: + uint varcount; + CNF *cnf; + CSolver *solver; + + SATEncoder(CSolver *solver); + ~SATEncoder(); + void encodeAllSATEncoder(CSolver *csolver); + Edge encodeConstraintSATEncoder(Boolean *constraint); + MEMALLOC; +}; -void encodeElementSATEncoder(SATEncoder *encoder, Element *This); -void encodeElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This); -void encodeTableElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This); + Edge getNewVarSATEncoder(SATEncoder *This); + void getArrayNewVarsSATEncoder(SATEncoder *encoder, uint num, Edge *carray); + Edge encodeVarSATEncoder(SATEncoder *This, BooleanVar *constraint); + Edge encodeLogicSATEncoder(SATEncoder *This, BooleanLogic *constraint); + Edge encodePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint); + Edge encodeTablePredicateSATEncoder(SATEncoder *This, BooleanPredicate *constraint); + void encodeElementSATEncoder(SATEncoder *encoder, Element *This); + void encodeElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This); + void encodeTableElementFunctionSATEncoder(SATEncoder *encoder, ElementFunction *This); #endif