8 #include "functionencoding.h"
9 #include "constraint.h"
12 This is a little sketchy, but apparently legit.
13 https://www.python.org/dev/peps/pep-3123/ */
15 #define GETBOOLEANTYPE(o) GETASTNODETYPE(o)
16 #define GETBOOLEANPARENTS(o) (&((Boolean *)(o))->parents)
17 #define GETBOOLEANPOLARITY(b) (((Boolean*)b)->polarity)
18 #define GETBOOLEANVALUE(b) (((Boolean*)b)->boolVal)
24 VectorBoolean parents;
34 //I don't like the name, we may want to change it later --HG
35 struct BooleanInterOrder{
55 struct BooleanPredicate {
57 Predicate * predicate;
58 FunctionEncoding encoding;
63 Boolean * allocBooleanVar(VarType t);
64 Boolean * allocBooleanOrder(Order * order, uint64_t first, uint64_t second);
65 Boolean * allocBooleanInterOrder(Order * order1, uint64_t first,Order* order2, uint64_t second);
66 Boolean * allocBooleanPredicate(Predicate * predicate, Element ** inputs, uint numInputs, Boolean* undefinedStatus);
67 Boolean * allocBooleanLogicArray(CSolver *solver, LogicOp op, Boolean ** array, uint asize);
68 void deleteBoolean(Boolean * This);
69 Polarity negatePolarity(Polarity This);
70 BooleanValue negateBooleanValue(BooleanValue This);
71 static inline FunctionEncoding* getPredicateFunctionEncoding(BooleanPredicate* func){
72 return &func->encoding;