summaryrefslogtreecommitdiff
path: root/src/theory/evaluator.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2019-07-31 11:01:33 -0500
committerGitHub <noreply@github.com>2019-07-31 11:01:33 -0500
commitcd6e11c2887a71f559ab2e278ec944246c346c04 (patch)
tree43c5279b75a606074d0c2aa728ad5dfe9dedef51 /src/theory/evaluator.cpp
parented2ed9dffb709c9120890f665983abc594bdc0e5 (diff)
Add some missing cases in evaluator (#3133)
Diffstat (limited to 'src/theory/evaluator.cpp')
-rw-r--r--src/theory/evaluator.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/theory/evaluator.cpp b/src/theory/evaluator.cpp
index 818f40e8c..ffb5b9fd4 100644
--- a/src/theory/evaluator.cpp
+++ b/src/theory/evaluator.cpp
@@ -259,6 +259,12 @@ EvalResult Evaluator::evalInternal(TNode n,
break;
}
+ case kind::UMINUS:
+ {
+ const Rational& x = results[currNode[0]].d_rat;
+ results[currNode] = EvalResult(-x);
+ break;
+ }
case kind::MULT:
{
Rational res = results[currNode[0]].d_rat;
@@ -277,6 +283,27 @@ EvalResult Evaluator::evalInternal(TNode n,
results[currNode] = EvalResult(x >= y);
break;
}
+ case kind::LEQ:
+ {
+ const Rational& x = results[currNode[0]].d_rat;
+ const Rational& y = results[currNode[1]].d_rat;
+ results[currNode] = EvalResult(x <= y);
+ break;
+ }
+ case kind::GT:
+ {
+ const Rational& x = results[currNode[0]].d_rat;
+ const Rational& y = results[currNode[1]].d_rat;
+ results[currNode] = EvalResult(x > y);
+ break;
+ }
+ case kind::LT:
+ {
+ const Rational& x = results[currNode[0]].d_rat;
+ const Rational& y = results[currNode[1]].d_rat;
+ results[currNode] = EvalResult(x < y);
+ break;
+ }
case kind::CONST_STRING:
results[currNode] = EvalResult(currNodeVal.getConst<String>());
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback