summaryrefslogtreecommitdiff
path: root/src/theory/bv/equality_engine.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/bv/equality_engine.h')
-rw-r--r--src/theory/bv/equality_engine.h48
1 files changed, 24 insertions, 24 deletions
diff --git a/src/theory/bv/equality_engine.h b/src/theory/bv/equality_engine.h
index 5d4212849..0450c4535 100644
--- a/src/theory/bv/equality_engine.h
+++ b/src/theory/bv/equality_engine.h
@@ -313,7 +313,7 @@ public:
*/
EqualityEngine(OwnerClass& owner, context::Context* context, std::string name)
: d_notify(owner), d_assertedEqualitiesCount(context, 0), d_stats(name) {
- Debug("equality") << "EqualityEdge::EqualityEdge(): id_null = " << BitSizeTraits::id_null <<
+ BVDebug("equality") << "EqualityEdge::EqualityEdge(): id_null = " << BitSizeTraits::id_null <<
", trigger_id_null = " << BitSizeTraits::trigger_id_null << std::endl;
}
@@ -379,7 +379,7 @@ private:
template <typename OwnerClass, typename NotifyClass, typename UnionFindPreferences>
size_t EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::addTerm(TNode t) {
- Debug("equality") << "EqualityEngine::addTerm(" << t << ")" << std::endl;
+ BVDebug("equality") << "EqualityEngine::addTerm(" << t << ")" << std::endl;
// If term already added, retrurn it's id
if (hasTerm(t)) return getNodeId(t);
@@ -429,7 +429,7 @@ EqualityNode& EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::get
template <typename OwnerClass, typename NotifyClass, typename UnionFindPreferences>
bool EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::addEquality(TNode t1, TNode t2, Node reason) {
- Debug("equality") << "EqualityEngine::addEquality(" << t1 << "," << t2 << ")" << std::endl;
+ BVDebug("equality") << "EqualityEngine::addEquality(" << t1 << "," << t2 << ")" << std::endl;
// Backtrack if necessary
backtrack();
@@ -466,11 +466,11 @@ bool EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::addEquality(
// Depending on the merge preference (such as size), merge them
std::vector<size_t> triggers;
if (UnionFindPreferences::mergePreference(d_nodes[t2classId], node2.getSize(), d_nodes[t1classId], node1.getSize())) {
- Debug("equality") << "EqualityEngine::addEquality(" << t1 << "," << t2 << "): merging " << t1 << " into " << t2 << std::endl;
+ BVDebug("equality") << "EqualityEngine::addEquality(" << t1 << "," << t2 << "): merging " << t1 << " into " << t2 << std::endl;
merge(node2, node1, triggers);
d_assertedEqualities.push_back(Equality(t2classId, t1classId));
} else {
- Debug("equality") << "EqualityEngine::addEquality(" << t1 << "," << t2 << "): merging " << t2 << " into " << t1 << std::endl;
+ BVDebug("equality") << "EqualityEngine::addEquality(" << t1 << "," << t2 << "): merging " << t2 << " into " << t1 << std::endl;
merge(node1, node2, triggers);
d_assertedEqualities.push_back(Equality(t1classId, t2classId));
}
@@ -496,7 +496,7 @@ bool EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::addEquality(
template <typename OwnerClass, typename NotifyClass, typename UnionFindPreferences>
TNode EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::getRepresentative(TNode t) const {
- Debug("equality") << "EqualityEngine::getRepresentative(" << t << ")" << std::endl;
+ BVDebug("equality") << "EqualityEngine::getRepresentative(" << t << ")" << std::endl;
Assert(hasTerm(t));
@@ -504,14 +504,14 @@ TNode EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::getRepresen
const_cast<EqualityEngine*>(this)->backtrack();
size_t representativeId = const_cast<EqualityEngine*>(this)->getEqualityNode(t).getFind();
- Debug("equality") << "EqualityEngine::getRepresentative(" << t << ") => " << d_nodes[representativeId] << std::endl;
+ BVDebug("equality") << "EqualityEngine::getRepresentative(" << t << ") => " << d_nodes[representativeId] << std::endl;
return d_nodes[representativeId];
}
template <typename OwnerClass, typename NotifyClass, typename UnionFindPreferences>
bool EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::areEqual(TNode t1, TNode t2) const {
- Debug("equality") << "EqualityEngine::areEqual(" << t1 << "," << t2 << ")" << std::endl;
+ BVDebug("equality") << "EqualityEngine::areEqual(" << t1 << "," << t2 << ")" << std::endl;
Assert(hasTerm(t1));
Assert(hasTerm(t2));
@@ -521,7 +521,7 @@ bool EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::areEqual(TNo
size_t rep1 = const_cast<EqualityEngine*>(this)->getEqualityNode(t1).getFind();
size_t rep2 = const_cast<EqualityEngine*>(this)->getEqualityNode(t2).getFind();
- Debug("equality") << "EqualityEngine::areEqual(" << t1 << "," << t2 << ") => " << (rep1 == rep2 ? "true" : "false") << std::endl;
+ BVDebug("equality") << "EqualityEngine::areEqual(" << t1 << "," << t2 << ") => " << (rep1 == rep2 ? "true" : "false") << std::endl;
return rep1 == rep2;
}
@@ -529,7 +529,7 @@ bool EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::areEqual(TNo
template <typename OwnerClass, typename NotifyClass, typename UnionFindPreferences>
void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::merge(EqualityNode& class1, EqualityNode& class2, std::vector<size_t>& triggers) {
- Debug("equality") << "EqualityEngine::merge(" << class1.getFind() << "," << class2.getFind() << ")" << std::endl;
+ BVDebug("equality") << "EqualityEngine::merge(" << class1.getFind() << "," << class2.getFind() << ")" << std::endl;
Assert(triggers.empty());
@@ -579,7 +579,7 @@ void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::merge(Equali
template <typename OwnerClass, typename NotifyClass, typename UnionFindPreferences>
void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::undoMerge(EqualityNode& class1, EqualityNode& class2, size_t class2Id) {
- Debug("equality") << "EqualityEngine::undoMerge(" << class1.getFind() << "," << class2Id << ")" << std::endl;
+ BVDebug("equality") << "EqualityEngine::undoMerge(" << class1.getFind() << "," << class2Id << ")" << std::endl;
// Now unmerge the lists (same as merge)
class1.merge<false>(class2);
@@ -616,7 +616,7 @@ void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::backtrack()
++ d_stats.backtracksCount;
- Debug("equality") << "EqualityEngine::backtrack(): nodes" << std::endl;
+ BVDebug("equality") << "EqualityEngine::backtrack(): nodes" << std::endl;
for (int i = (int)d_assertedEqualities.size() - 1, i_end = (int)d_assertedEqualitiesCount; i >= i_end; --i) {
// Get the ids of the merged classes
@@ -627,7 +627,7 @@ void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::backtrack()
d_assertedEqualities.resize(d_assertedEqualitiesCount);
- Debug("equality") << "EqualityEngine::backtrack(): edges" << std::endl;
+ BVDebug("equality") << "EqualityEngine::backtrack(): edges" << std::endl;
for (int i = (int)d_equalityEdges.size() - 2, i_end = (int)(2*d_assertedEqualitiesCount); i >= i_end; i -= 2) {
EqualityEdge& edge1 = d_equalityEdges[i];
@@ -644,7 +644,7 @@ void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::backtrack()
template <typename OwnerClass, typename NotifyClass, typename UnionFindPreferences>
void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::addGraphEdge(size_t t1, size_t t2, Node reason) {
- Debug("equality") << "EqualityEngine::addGraphEdge(" << d_nodes[t1] << "," << d_nodes[t2] << ")" << std::endl;
+ BVDebug("equality") << "EqualityEngine::addGraphEdge(" << d_nodes[t1] << "," << d_nodes[t2] << ")" << std::endl;
size_t edge = d_equalityEdges.size();
d_equalityEdges.push_back(EqualityEdge(t2, d_equalityGraph[t1]));
d_equalityEdges.push_back(EqualityEdge(t1, d_equalityGraph[t2]));
@@ -672,7 +672,7 @@ template <typename OwnerClass, typename NotifyClass, typename UnionFindPreferenc
void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::getExplanation(TNode t1, TNode t2, std::vector<TNode>& equalities) const {
Assert(getRepresentative(t1) == getRepresentative(t2));
- Debug("equality") << "EqualityEngine::getExplanation(" << t1 << "," << t2 << ")" << std::endl;
+ BVDebug("equality") << "EqualityEngine::getExplanation(" << t1 << "," << t2 << ")" << std::endl;
// If the nodes are the same, we're done
if (t1 == t2) return;
@@ -697,12 +697,12 @@ void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::getExplanati
BfsData current = bfsQueue[currentIndex];
size_t currentNode = current.nodeId;
- Debug("equality") << "EqualityEngine::getExplanation(): currentNode = " << d_nodes[currentNode] << std::endl;
+ BVDebug("equality") << "EqualityEngine::getExplanation(): currentNode = " << d_nodes[currentNode] << std::endl;
// Go through the equality edges of this node
size_t currentEdge = d_equalityGraph[currentNode];
- Debug("equality") << "EqualityEngine::getExplanation(): edges = " << edgesToString(currentEdge) << std::endl;
+ BVDebug("equality") << "EqualityEngine::getExplanation(): edges = " << edgesToString(currentEdge) << std::endl;
while (currentEdge != BitSizeTraits::id_null) {
// Get the edge
@@ -711,18 +711,18 @@ void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::getExplanati
// If not just the backwards edge
if ((currentEdge | 1u) != (current.edgeId | 1u)) {
- Debug("equality") << "EqualityEngine::getExplanation(): currentEdge = (" << d_nodes[currentNode] << "," << d_nodes[edge.getNodeId()] << ")" << std::endl;
+ BVDebug("equality") << "EqualityEngine::getExplanation(): currentEdge = (" << d_nodes[currentNode] << "," << d_nodes[edge.getNodeId()] << ")" << std::endl;
// Did we find the path
if (edge.getNodeId() == t2Id) {
- Debug("equality") << "EqualityEngine::getExplanation(): path found: " << std::endl;
+ BVDebug("equality") << "EqualityEngine::getExplanation(): path found: " << std::endl;
// Reconstruct the path
do {
// Add the actual equality to the vector
equalities.push_back(d_equalityReasons[currentEdge >> 1]);
- Debug("equality") << "EqualityEngine::getExplanation(): adding: " << d_equalityReasons[currentEdge >> 1] << std::endl;
+ BVDebug("equality") << "EqualityEngine::getExplanation(): adding: " << d_equalityReasons[currentEdge >> 1] << std::endl;
// Go to the previous
currentEdge = bfsQueue[currentIndex].edgeId;
@@ -749,7 +749,7 @@ void EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::getExplanati
template <typename OwnerClass, typename NotifyClass, typename UnionFindPreferences>
size_t EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::addTrigger(TNode t1, TNode t2) {
- Debug("equality") << "EqualityEngine::addTrigger(" << t1 << "," << t2 << ")" << std::endl;
+ BVDebug("equality") << "EqualityEngine::addTrigger(" << t1 << "," << t2 << ")" << std::endl;
Assert(hasTerm(t1));
Assert(hasTerm(t2));
@@ -774,7 +774,7 @@ size_t EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::addTrigger
d_nodeTriggers[t1Id] = t1NewTriggerId;
d_nodeTriggers[t2Id] = t2NewTriggerId;
- Debug("equality") << "EqualityEngine::addTrigger(" << t1 << "," << t2 << ") => " << t1NewTriggerId / 2 << std::endl;
+ BVDebug("equality") << "EqualityEngine::addTrigger(" << t1 << "," << t2 << ") => " << t1NewTriggerId / 2 << std::endl;
// Return the global id of the trigger
return t1NewTriggerId / 2;
@@ -792,7 +792,7 @@ Node EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::normalize(TN
template <typename OwnerClass, typename NotifyClass, typename UnionFindPreferences>
Node EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::normalizeWithCache(TNode node, std::set<TNode>& assumptions) {
- Debug("equality") << "EqualityEngine::normalize(" << node << ")" << push << std::endl;
+ BVDebug("equality") << "EqualityEngine::normalize(" << node << ")" << push << std::endl;
normalization_cache::iterator find = d_normalizationCache.find(node);
if (find != d_normalizationCache.end()) {
@@ -830,7 +830,7 @@ Node EqualityEngine<OwnerClass, NotifyClass, UnionFindPreferences>::normalizeWit
result = builder;
}
- Debug("equality") << "EqualityEngine::normalize(" << node << ") => " << result << pop << std::endl;
+ BVDebug("equality") << "EqualityEngine::normalize(" << node << ") => " << result << pop << std::endl;
// Cache the result for real now
d_normalizationCache[node] = result;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback