Merge branch 'master' of ssh://plrg.eecs.uci.edu/home/git/constraint_compiler
[satune.git] / src / AST / table.h
index 240eb29ab4da0ee0cbf8a7af85512e214aff7fe1..6c7926e80e04f42c1437b9d10df5132198efb3a8 100644 (file)
@@ -5,15 +5,26 @@
 #include "structs.h"
 
 class Table {
- public:
+public:
        Table(Set **domains, uint numDomain, Set *range);
        void addNewTableEntry(uint64_t *inputs, uint inputSize, uint64_t result);
        TableEntry *getTableEntry(uint64_t *inputs, uint inputSize);
+       Table *clone(CSolver *solver, CloneMap *map);
        ~Table();
-       ArraySet domains;
+       Set * getRange() {return range;}
+       
+       Set * getDomain(uint i) {return domains.get(i);}
+       uint numDomains() {return domains.getSize();}
+       SetIteratorTableEntry * getEntries() {return entries->iterator();}
+       uint getSize() {return entries->getSize();}
+
+       CMEMALLOC;
+       
+ private:
+       Array<Set *> domains;
        Set *range;
-       HashSetTableEntry *entries;
-       MEMALLOC;
+       HashsetTableEntry *entries;
 };
 
 #endif