7 Boolean::Boolean(ASTNodeType _type) : ASTNode(_type), polarity(P_UNDEFINED), boolVal(BV_UNDEFINED) {
8 initDefVectorBoolean(GETBOOLEANPARENTS(this));
11 BooleanVar::BooleanVar(VarType t) : Boolean(BOOLEANVAR), vtype(t), var(E_NULL) {
14 BooleanOrder::BooleanOrder(Order *_order, uint64_t _first, uint64_t _second) : Boolean(ORDERCONST), order(_order), first(_first), second(_second) {
15 pushVectorBooleanOrder(&order->constraints, this);
18 BooleanPredicate::BooleanPredicate(Predicate *_predicate, Element **_inputs, uint _numInputs, Boolean *_undefinedStatus) :
20 predicate(_predicate),
21 inputs(_inputs, _numInputs),
22 undefStatus(_undefinedStatus) {
23 for (uint i = 0; i < _numInputs; i++) {
24 pushVectorASTNode(GETELEMENTPARENTS(_inputs[i]), this);
26 initPredicateEncoding(&encoding, this);
29 BooleanLogic::BooleanLogic(CSolver *solver, LogicOp _op, Boolean **array, uint asize) :
32 inputs(array, asize) {
33 pushVectorBoolean(solver->allBooleans, (Boolean *) this);
37 deleteVectorArrayBoolean(GETBOOLEANPARENTS(this));
40 BooleanPredicate::~BooleanPredicate() {
41 deleteFunctionEncoding(&encoding);