6 Boolean* allocBoolean(VarType t) {
7 BooleanVar* tmp=(BooleanVar *) ourmalloc(sizeof (BooleanVar));
8 GETBOOLEANTYPE(tmp)=BOOLEANVAR;
11 allocInlineDefVectorBoolean(GETBOOLEANPARENTS(tmp));
15 Boolean* allocBooleanOrder(Order* order, uint64_t first, uint64_t second) {
16 BooleanOrder* tmp=(BooleanOrder *) ourmalloc(sizeof (BooleanOrder));
17 GETBOOLEANTYPE(tmp)=ORDERCONST;
21 allocInlineDefVectorBoolean(GETBOOLEANPARENTS(tmp));
25 Boolean * allocBooleanPredicate(Predicate * predicate, Element ** inputs, uint numInputs){
26 BooleanPredicate* This = (BooleanPredicate*) ourmalloc(sizeof(BooleanPredicate));
27 GETBOOLEANTYPE(This)= PREDICATEOP;
28 This->predicate=predicate;
29 allocInlineArrayInitElement(&This->inputs, inputs, numInputs);
30 allocInlineDefVectorBoolean(GETBOOLEANPARENTS(This));
32 for(uint i=0;i<numInputs;i++) {
33 pushVectorASTNode(GETELEMENTPARENTS(inputs[i]), (ASTNode *)This);
35 initPredicateEncoding(&This->encoding, (Boolean *) This);
40 Boolean * allocBooleanLogicArray(CSolver *solver, LogicOp op, Boolean ** array, uint asize){
41 BooleanLogic * This = ourmalloc(sizeof(BooleanLogic));
42 allocInlineDefVectorBoolean(GETBOOLEANPARENTS(This));
43 allocInlineArrayInitBoolean(&This->inputs, array, asize);
44 pushVectorBoolean(solver->allBooleans, (Boolean *) This);
48 void deleteBoolean(Boolean * This) {
49 switch(GETBOOLEANTYPE(This)){
51 BooleanPredicate *bp=(BooleanPredicate *)This;
52 deleteInlineArrayElement(& bp->inputs );
53 deleteFunctionEncoding(& bp->encoding);
59 deleteVectorArrayBoolean(GETBOOLEANPARENTS(This));