summaryrefslogtreecommitdiff
path: root/src/theory/theory_model.cpp
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2017-04-05 09:01:55 -0500
committerajreynol <andrew.j.reynolds@gmail.com>2017-04-05 09:01:55 -0500
commitea54c6ed118928d8767c35e60d5de6c6ef877d00 (patch)
treeefaf95f700378af40d92138dcf68ae947d6dd565 /src/theory/theory_model.cpp
parentbf682b92e2bddcd490604f8a65c440b9c4c2f2f9 (diff)
Add non-linear regressions, disable nlAlgSubs, do not do rep checking for NONLINEAR_MULT terms. Ensure shared terms have correct model values in non-linear solver.
Diffstat (limited to 'src/theory/theory_model.cpp')
-rw-r--r--src/theory/theory_model.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/theory/theory_model.cpp b/src/theory/theory_model.cpp
index 4de0d6a54..c064040d9 100644
--- a/src/theory/theory_model.cpp
+++ b/src/theory/theory_model.cpp
@@ -991,13 +991,16 @@ void TheoryEngineModelBuilder::debugCheckModel(Model* m){
Node n = *eqc_i;
static int repCheckInstance = 0;
++repCheckInstance;
-
- Debug("check-model::rep-checking")
- << "( " << repCheckInstance <<") "
- << "n: " << n << endl
- << "getValue(n): " << tm->getValue(n) << endl
- << "rep: " << rep << endl;
- Assert(tm->getValue(*eqc_i) == rep, "run with -d check-model::rep-checking for details");
+
+ // non-linear mult is not necessarily accurate wrt getValue
+ if( n.getKind()!=kind::NONLINEAR_MULT ){
+ Debug("check-model::rep-checking")
+ << "( " << repCheckInstance <<") "
+ << "n: " << n << endl
+ << "getValue(n): " << tm->getValue(n) << endl
+ << "rep: " << rep << endl;
+ Assert(tm->getValue(*eqc_i) == rep, "run with -d check-model::rep-checking for details");
+ }
}
}
#endif /* CVC4_ASSERTIONS */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback