feff67a946f7cb807b6f8970df3f4f024213c94d
[satune.git] / src / AST / predicate.cc
1 #include "predicate.h"
2 #include "boolean.h"
3 #include "set.h"
4 #include "table.h"
5
6 PredicateOperator::PredicateOperator(CompOp _op, Set **domain, uint numDomain) : Predicate(OPERATORPRED) , op(_op), domains(domain, numDomain) {
7 }
8
9 PredicateTable::PredicateTable(Table *_table, UndefinedBehavior _undefBehavior) : Predicate(TABLEPRED), table(_table), undefinedbehavior(_undefBehavior) {
10 }
11
12 bool PredicateOperator::evalPredicateOperator(uint64_t *inputs) {
13         switch (op) {
14         case EQUALS:
15                 return inputs[0] == inputs[1];
16         case LT:
17                 return inputs[0] < inputs[1];
18         case GT:
19                 return inputs[0] > inputs[1];
20         case LTE:
21                 return inputs[0] <= inputs[1];
22         case GTE:
23                 return inputs[0] >= inputs[1];
24         }
25         ASSERT(0);
26         return false;
27 }