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;
46 struct BooleanPredicate {
48 Predicate * predicate;
49 FunctionEncoding encoding;
54 Boolean * allocBooleanVar(VarType t);
55 Boolean * allocBooleanOrder(Order * order, uint64_t first, uint64_t second);
56 Boolean * allocBooleanPredicate(Predicate * predicate, Element ** inputs, uint numInputs, Boolean* undefinedStatus);
57 Boolean * allocBooleanLogicArray(CSolver *solver, LogicOp op, Boolean ** array, uint asize);
58 void deleteBoolean(Boolean * This);
59 Polarity negatePolarity(Polarity This);
60 BooleanValue negateBooleanValue(BooleanValue This);
61 static inline FunctionEncoding* getPredicateFunctionEncoding(BooleanPredicate* func){
62 return &func->encoding;