Merge branch 'master' of ssh://plrg.eecs.uci.edu/home/git/constraint_compiler
[satune.git] / src / AST / table.h
1 #ifndef TABLE_H
2 #define TABLE_H
3 #include "classlist.h"
4 #include "mymemory.h"
5 #include "structs.h"
6
7 class Table {
8 public:
9         Table(Set **domains, uint numDomain, Set *range);
10         void addNewTableEntry(uint64_t *inputs, uint inputSize, uint64_t result);
11         TableEntry *getTableEntry(uint64_t *inputs, uint inputSize);
12         Table *clone(CSolver *solver, CloneMap *map);
13         ~Table();
14         Set * getRange() {return range;}
15         
16         Set * getDomain(uint i) {return domains.get(i);}
17         uint numDomains() {return domains.getSize();}
18  
19         SetIteratorTableEntry * getEntries() {return entries->iterator();}
20         uint getSize() {return entries->getSize();}
21
22         CMEMALLOC;
23         
24  private:
25         Array<Set *> domains;
26         Set *range;
27         HashsetTableEntry *entries;
28 };
29
30 #endif