X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2FCollections%2Fstructs.cc;h=20012421f8eab831957682b8cff4fbf65dfc08a4;hb=cfbb106cf7c1281029b012c47580c9f14df1014b;hp=a6e19f03b22c23b3e30cc2c043903855fa0600ce;hpb=7997cc8a8bbee380ba714aa52362374f2aa68ef1;p=satune.git diff --git a/src/Collections/structs.cc b/src/Collections/structs.cc index a6e19f0..2001242 100644 --- a/src/Collections/structs.cc +++ b/src/Collections/structs.cc @@ -6,6 +6,7 @@ #include "ordergraph.h" #include "orderelement.h" #include "structs.h" +#include "decomposeorderresolver.h" unsigned int table_entry_hash_function(TableEntry *This) { unsigned int h = 0; @@ -41,12 +42,12 @@ bool order_edge_equals(OrderEdge *key1, OrderEdge *key2) { return key1->sink == key2->sink && key1->source == key2->source; } -unsigned int order_element_hash_function(OrderElement* This) { - return (uint)This->item; +unsigned int order_element_hash_function(OrderElement *This) { + return This->getHash(); } -bool order_element_equals(OrderElement* key1, OrderElement* key2) { - return key1->item == key2->item; +bool order_element_equals(OrderElement *key1, OrderElement *key2) { + return key1->equals(key2); } unsigned int order_pair_hash_function(OrderPair *This) { @@ -57,3 +58,11 @@ bool order_pair_equals(OrderPair *key1, OrderPair *key2) { return key1->first == key2->first && key1->second == key2->second; } +unsigned int doredge_hash_function(DOREdge *key) { + return (uint) (key->newfirst << 2) ^ key->newsecond; +} + +bool doredge_equals(DOREdge *key1, DOREdge *key2) { + return key1->newfirst == key2->newfirst && + key1->newsecond == key2->newsecond; +}