diff options
author | Tim King <taking@cs.nyu.edu> | 2010-09-13 16:08:21 +0000 |
---|---|---|
committer | Tim King <taking@cs.nyu.edu> | 2010-09-13 16:08:21 +0000 |
commit | 0e18d60841c2a7cd5c079b6c0dacf5d61afb4835 (patch) | |
tree | 470e4868ca9576dc20d491afa7462d6e9f1f8c56 /src/theory/arith/theory_arith.h | |
parent | 8d74ddb6380f39034e5cae5d4b094a283e14ffb3 (diff) |
* New normal form for arithmetic is in place.
* src/theory/arith/normal_form.{h,cpp} contains the description for the new
normal form as well as utilities for dealing with the normal form.
* src/theory/arith/next_arith_rewriter.{h,cpp} contains the new rewriter.
The new rewriter implements preRewrite() and postRewrite() for arithmetic.
* src/theory/arith/arith_rewriter.{h,cpp} have been removed.
* TheoryArith::rewrite() has been removed.
* Arithmetic with the new normal form outperforms the trunk where the branch
occurred (-r797) on 46% of the examples in QF_LRA. (33% have no noticeable
difference.) Some important optimizations are stilling pending to the code
for handling the new normal form. (Bug 196.)
Diffstat (limited to 'src/theory/arith/theory_arith.h')
-rw-r--r-- | src/theory/arith/theory_arith.h | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/theory/arith/theory_arith.h b/src/theory/arith/theory_arith.h index 7367f5726..03be7a77b 100644 --- a/src/theory/arith/theory_arith.h +++ b/src/theory/arith/theory_arith.h @@ -28,7 +28,7 @@ #include "theory/arith/delta_rational.h" #include "theory/arith/tableau.h" -#include "theory/arith/arith_rewriter.h" +#include "theory/arith/next_arith_rewriter.h" #include "theory/arith/partial_model.h" #include "theory/arith/arith_propagator.h" @@ -94,7 +94,7 @@ private: /** * The rewriter module for arithmetic. */ - ArithRewriter d_rewriter; + NextArithRewriter d_nextRewriter; ArithUnatePropagator d_propagator; @@ -103,11 +103,6 @@ public: ~TheoryArith(); /** - * Rewrites a node to a unique normal form given in normal_form_notes.txt - */ - Node rewrite(TNode n); - - /** * Rewriting optimizations. */ RewriteResponse preRewrite(TNode n, bool topLevel); @@ -116,7 +111,7 @@ public: * Plug in old rewrite to the new (pre,post)rewrite interface. */ RewriteResponse postRewrite(TNode n, bool topLevel) { - return RewriteComplete(topLevel ? rewrite(n) : Node(n)); + return d_nextRewriter.postRewrite(n); } /** |