X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2FCollections%2Fstructs.h;h=6540b5ad289d6536318b1bf8ea505dc47ac27159;hb=85278f8212fb2d60c0e800e05ae3fae499f8e3f4;hp=3e08e976a65b4b55367c0362298d5aebc916f096;hpb=d4e365ab7ea6d97d8ad65c1f230871254ce36737;p=satune.git diff --git a/src/Collections/structs.h b/src/Collections/structs.h index 3e08e97..6540b5a 100644 --- a/src/Collections/structs.h +++ b/src/Collections/structs.h @@ -1,28 +1,52 @@ #ifndef STRUCTS_H #define STRUCTS_H -#include "vector.h" +#include "cppvector.h" #include "hashtable.h" #include "hashset.h" #include "classlist.h" +#include "array.h" +#include "corestructs.h" -VectorDef(Int, uint64_t, 4); -VectorDef(Void, void *, 4); -VectorDef(Boolean, Boolean *, 4); -VectorDef(Constraint, Constraint *, 4); -VectorDef(Set, Set *, 4); -VectorDef(Element, Element *, 4); -VectorDef(TableEntry, TableEntry *, 4); -VectorDef(Predicate, Predicate *, 4); -VectorDef(Table, Table *, 4); - -inline unsigned int Ptr_hash_function(void * hash) { - return (unsigned int)((uint64_t)hash >> 4); -} - -inline bool Ptr_equals(void * key1, void * key2) { - return key1 == key2; -} - -HashTableDef(Void, void *, void *, Ptr_hash_function, Ptr_equals); -HashSetDef(Void, void *, Ptr_hash_function, Ptr_equals); + +unsigned int table_entry_hash_function(TableEntry *This); +bool table_entry_equals(TableEntry *key1, TableEntry *key2); +unsigned int order_node_hash_function(OrderNodeKey *This); +bool order_node_equals(OrderNodeKey *key1, OrderNodeKey *key2); +unsigned int order_edge_hash_function(OrderEdge *This); +bool order_edge_equals(OrderEdge *key1, OrderEdge *key2); +unsigned int order_element_hash_function(OrderElement *This); +bool order_element_equals(OrderElement *key1, OrderElement *key2); +unsigned int order_pair_hash_function(OrderPair *This); +bool order_pair_equals(OrderPair *key1, OrderPair *key2); +unsigned int tunableSettingHash(TunableSetting *setting); +bool tunableSettingEquals(TunableSetting *setting1, TunableSetting *setting2); +unsigned int doredge_hash_function(DOREdge *key); +bool doredge_equals(DOREdge *key1, DOREdge *key2); + + +typedef Hashset HashsetTableEntry; +typedef Hashset HashsetOrderNode; +typedef Hashset HashsetOrderEdge; +typedef Hashset HashsetOrderElement; +typedef Hashset HashsetDOREdge; +typedef Hashset HashsetBoolean; +typedef Hashset HashsetElement; +typedef Hashset Hashset64Int; +typedef Hashset HashsetTunableSetting; + + +typedef Hashtable HashtableNodeToNodeSet; +typedef Hashtable HashtableOrderPair; +typedef Hashtable CloneMap; +typedef Hashtable HashtableEncoding; + + +typedef SetIterator SetIteratorTableEntry; +typedef SetIterator SetIteratorOrderEdge; +typedef SetIterator SetIteratorOrderNode; +typedef SetIterator SetIteratorOrderElement; +typedef SetIterator SetIteratorDOREdge; +typedef SetIterator SetIteratorBoolean; +typedef SetIterator SetIterator64Int; +typedef SetIterator SetIteratorTunableSetting; #endif