X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2FBackend%2Forderpair.h;h=7c1cabdcf962ed8c713fde165e72b28c8c0e204d;hb=e1360c75a71486a0de8c1b30a2a8cd2877902416;hp=05c8ffa06034f9cfb02552aad3a116948fdd3105;hpb=0073b37bd741b59fe79857958d8276fc9128db0b;p=satune.git diff --git a/src/Backend/orderpair.h b/src/Backend/orderpair.h index 05c8ffa..7c1cabd 100644 --- a/src/Backend/orderpair.h +++ b/src/Backend/orderpair.h @@ -1,4 +1,4 @@ -/* +/* * File: orderpair.h * Author: hamed * @@ -12,14 +12,23 @@ #include "mymemory.h" #include "constraint.h" -struct OrderPair{ +class OrderPair { +public: + OrderPair(uint64_t first, uint64_t second, Edge constraint = E_NULL); + OrderPair(); + virtual ~OrderPair(); + virtual Edge getConstraint(); + virtual bool getConstraintValue(CSolver *solver); + //for the cases that we swap first and second ... For total order is straight forward. + // but for partial order it has some complexity which should be hidden ... -HG + virtual Edge getNegatedConstraint(); + virtual bool getNegatedConstraintValue(CSolver *solver); uint64_t first; uint64_t second; + CMEMALLOC; +protected: Edge constraint; -}; +}; -OrderPair* allocOrderPair(uint64_t first, uint64_t second, Edge constraint); -void deleteOrderPair(OrderPair* pair); - -#endif /* ORDERPAIR_H */ +#endif/* ORDERPAIR_H */