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 {
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 static inline FunctionEncoding *getPredicateFunctionEncoding(BooleanPredicate *func) {
60 return &func->encoding;