6 Predicate *allocPredicateOperator(CompOp op, Set **domain, uint numDomain) {
7 PredicateOperator *This = ourmalloc(sizeof(PredicateOperator));
8 GETPREDICATETYPE(This) = OPERATORPRED;
9 initArrayInitSet(&This->domains, domain, numDomain);
14 Predicate *allocPredicateTable(Table *table, UndefinedBehavior undefBehavior) {
15 ASSERT(table->range == NULL);
16 PredicateTable *This = ourmalloc(sizeof(PredicateTable));
17 GETPREDICATETYPE(This) = TABLEPRED;
19 This->undefinedbehavior = undefBehavior;
23 void deletePredicate(Predicate *This) {
24 switch (GETPREDICATETYPE(This)) {
26 PredicateOperator *operpred = (PredicateOperator *) This;
27 deleteInlineArraySet(&operpred->domains);
34 //need to handle freeing array...
38 bool evalPredicateOperator(PredicateOperator *This, uint64_t *inputs) {
41 return inputs[0] == inputs[1];
43 return inputs[0] < inputs[1];
45 return inputs[0] > inputs[1];
47 return inputs[0] <= inputs[1];
49 return inputs[0] >= inputs[1];