summaryrefslogtreecommitdiff
path: root/src/theory/uf/equality_engine.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-08-09 16:50:09 -0500
committerGitHub <noreply@github.com>2020-08-09 14:50:09 -0700
commit28f5438df1e5ba87aab60552658aa09b79c35ba2 (patch)
treea6220b7a3efdaaac55f161b2133a8235e7f40c97 /src/theory/uf/equality_engine.cpp
parent43ae3483320d7964166407f84d04339ece944bbf (diff)
Splitting a few utility classes from EqualityEngine to their own file (#4862)
Includes iterators and notification callbacks. These classes will be highly relevant for planned extensions to the core theory engine infrastructure.
Diffstat (limited to 'src/theory/uf/equality_engine.cpp')
-rw-r--r--src/theory/uf/equality_engine.cpp103
1 files changed, 0 insertions, 103 deletions
diff --git a/src/theory/uf/equality_engine.cpp b/src/theory/uf/equality_engine.cpp
index 171140d89..3abc56553 100644
--- a/src/theory/uf/equality_engine.cpp
+++ b/src/theory/uf/equality_engine.cpp
@@ -2358,109 +2358,6 @@ bool EqualityEngine::propagateTriggerTermDisequalities(Theory::Set tags, Trigger
return !d_done;
}
-EqClassesIterator::EqClassesIterator() :
- d_ee(NULL), d_it(0) {
-}
-
-EqClassesIterator::EqClassesIterator(const eq::EqualityEngine* ee)
-: d_ee(ee)
-{
- Assert(d_ee->consistent());
- d_it = 0;
- // Go to the first non-internal node that is it's own representative
- if(d_it < d_ee->d_nodesCount && (d_ee->d_isInternal[d_it] || d_ee->getEqualityNode(d_it).getFind() != d_it)) {
- ++d_it;
- }
-}
-
-Node EqClassesIterator::operator*() const {
- return d_ee->d_nodes[d_it];
-}
-
-bool EqClassesIterator::operator==(const EqClassesIterator& i) const {
- return d_ee == i.d_ee && d_it == i.d_it;
-}
-
-bool EqClassesIterator::operator!=(const EqClassesIterator& i) const {
- return !(*this == i);
-}
-
-EqClassesIterator& EqClassesIterator::operator++() {
- ++d_it;
- while(d_it < d_ee->d_nodesCount && (d_ee->d_isInternal[d_it] || d_ee->getEqualityNode(d_it).getFind() != d_it)) {
- ++d_it;
- }
- return *this;
-}
-
-EqClassesIterator EqClassesIterator::operator++(int) {
- EqClassesIterator i = *this;
- ++*this;
- return i;
-}
-
-bool EqClassesIterator::isFinished() const {
- return d_it >= d_ee->d_nodesCount;
-}
-
-EqClassIterator::EqClassIterator()
-: d_ee(NULL)
-, d_start(null_id)
-, d_current(null_id)
-{}
-
-EqClassIterator::EqClassIterator(Node eqc, const eq::EqualityEngine* ee)
-: d_ee(ee)
-{
- Assert(d_ee->consistent());
- d_current = d_start = d_ee->getNodeId(eqc);
- Assert(d_start == d_ee->getEqualityNode(d_start).getFind());
- Assert(!d_ee->d_isInternal[d_start]);
-}
-
-Node EqClassIterator::operator*() const {
- return d_ee->d_nodes[d_current];
-}
-
-bool EqClassIterator::operator==(const EqClassIterator& i) const {
- return d_ee == i.d_ee && d_current == i.d_current;
-}
-
-bool EqClassIterator::operator!=(const EqClassIterator& i) const {
- return !(*this == i);
-}
-
-EqClassIterator& EqClassIterator::operator++() {
- Assert(!isFinished());
-
- Assert(d_start == d_ee->getEqualityNode(d_current).getFind());
- Assert(!d_ee->d_isInternal[d_current]);
-
- // Find the next one
- do {
- d_current = d_ee->getEqualityNode(d_current).getNext();
- } while(d_ee->d_isInternal[d_current]);
-
- Assert(d_start == d_ee->getEqualityNode(d_current).getFind());
- Assert(!d_ee->d_isInternal[d_current]);
-
- if(d_current == d_start) {
- // we end when we have cycled back to the original representative
- d_current = null_id;
- }
- return *this;
-}
-
-EqClassIterator EqClassIterator::operator++(int) {
- EqClassIterator i = *this;
- ++*this;
- return i;
-}
-
-bool EqClassIterator::isFinished() const {
- return d_current == null_id;
-}
-
} // Namespace uf
} // Namespace theory
} // Namespace CVC4
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback