d8c7829b86eb8e4dd60b9732d6fc7968485f5a44
[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         void serialize(Serializer *serializer);
14         void print();
15         ~Table();
16         Set * getRange() {return range;}
17         
18         Set * getDomain(uint i) {return domains.get(i);}
19         uint numDomains() {return domains.getSize();}
20  
21         SetIteratorTableEntry * getEntries() {return entries->iterator();}
22         uint getSize() {return entries->getSize();}
23
24         CMEMALLOC;
25         
26  private:
27         Array<Set *> domains;
28         Set *range;
29         HashsetTableEntry *entries;
30 };
31
32 #endif