#include "orderpair.h"
+#include "constraint.h"
+#include "csolver.h"
+#include "satencoder.h"
+OrderPair::OrderPair(uint64_t _first, uint64_t _second, Edge _constraint) :
+ first(_first),
+ second(_second),
+ constraint(_constraint) {
+}
+
+OrderPair::OrderPair() :
+ first(0),
+ second(0),
+ constraint(E_NULL) {
+}
+
+OrderPair::~OrderPair() {
+}
+
+Edge OrderPair::getConstraint() {
+ return constraint;
+}
+
+Edge OrderPair::getNegatedConstraint() {
+ return constraintNegate(constraint);
+}
-OrderPair *allocOrderPair(uint64_t first, uint64_t second, Edge constraint) {
- OrderPair *pair = (OrderPair *) ourmalloc(sizeof(OrderPair));
- pair->first = first;
- pair->second = second;
- pair->constraint = constraint;
- return pair;
+bool OrderPair::getConstraintValue(CSolver *solver) {
+ return getValueCNF(solver->getSATEncoder()->getCNF(), constraint);
}
-void deleteOrderPair(OrderPair *pair) {
- ourfree(pair);
+bool OrderPair::getNegatedConstraintValue(CSolver *solver) {
+ return getValueCNF(solver->getSATEncoder()->getCNF(), constraintNegate(constraint));
}