Merge branch 'master' of ssh://plrg.eecs.uci.edu/home/git/constraint_compiler
[satune.git] / src / AST / table.c
1 #include "table.h"
2 #include "common.h"
3 #include "structs.h"
4 #include "tableentry.h"
5 #include "set.h"
6 #include "mutableset.h"
7
8
9 Table * allocTable(Set **domains, uint numDomain, Set * range){
10         Table* table = (Table*) ourmalloc(sizeof(Table));
11         allocInlineArrayInitSet(&table->domains, domains, numDomain);
12         allocInlineDefVectorTableEntry(&table->entries);
13         table->range =range;
14         return table;
15 }
16
17 void addNewTableEntry(Table* table, uint64_t* inputs, uint inputSize, uint64_t result){
18         ASSERT(getSizeArrayElement( &table->domains) == inputSize);
19         pushVectorTableEntry(&table->entries, allocTableEntry(inputs, inputSize, result));
20 }
21
22 void deleteTable(Table* table){
23   deleteInlineArraySet(&table->domains);
24   uint size = getSizeVectorTableEntry(&table->entries);
25   for(uint i=0; i<size; i++){
26     deleteTableEntry(getVectorTableEntry(&table->entries, i));
27   }
28   deleteVectorArrayTableEntry(&table->entries);
29   ourfree(table);
30 }
31