7 Boolean* allocBooleanVar(VarType t) {
8 BooleanVar* This=(BooleanVar *) ourmalloc(sizeof (BooleanVar));
9 GETBOOLEANTYPE(This)=BOOLEANVAR;
12 initDefVectorBoolean(GETBOOLEANPARENTS(This));
16 Boolean* allocBooleanOrder(Order* order, uint64_t first, uint64_t second) {
17 BooleanOrder* This=(BooleanOrder *) ourmalloc(sizeof (BooleanOrder));
18 GETBOOLEANTYPE(This)=ORDERCONST;
22 pushVectorBoolean(&order->constraints, &This->base);
23 initDefVectorBoolean(GETBOOLEANPARENTS(This));
24 return & This -> base;
27 Boolean * allocBooleanPredicate(Predicate * predicate, Element ** inputs, uint numInputs){
28 BooleanPredicate* This = (BooleanPredicate*) ourmalloc(sizeof(BooleanPredicate));
29 GETBOOLEANTYPE(This)= PREDICATEOP;
30 This->predicate=predicate;
31 initArrayInitElement(&This->inputs, inputs, numInputs);
32 initDefVectorBoolean(GETBOOLEANPARENTS(This));
34 for(uint i=0;i<numInputs;i++) {
35 pushVectorASTNode(GETELEMENTPARENTS(inputs[i]), (ASTNode *)This);
37 initPredicateEncoding(&This->encoding, (Boolean *) This);
42 Boolean * allocBooleanLogicArray(CSolver *solver, LogicOp op, Boolean ** array, uint asize){
43 BooleanLogic * This = ourmalloc(sizeof(BooleanLogic));
44 initDefVectorBoolean(GETBOOLEANPARENTS(This));
45 initArrayInitBoolean(&This->inputs, array, asize);
46 pushVectorBoolean(solver->allBooleans, (Boolean *) This);
50 void deleteBoolean(Boolean * This) {
51 switch(GETBOOLEANTYPE(This)){
53 BooleanPredicate *bp=(BooleanPredicate *)This;
54 deleteInlineArrayElement(& bp->inputs );
55 deleteFunctionEncoding(& bp->encoding);
61 deleteVectorArrayBoolean(GETBOOLEANPARENTS(This));