diff options
author | ajreynol <andrew.j.reynolds@gmail.com> | 2017-04-05 09:01:55 -0500 |
---|---|---|
committer | ajreynol <andrew.j.reynolds@gmail.com> | 2017-04-05 09:01:55 -0500 |
commit | ea54c6ed118928d8767c35e60d5de6c6ef877d00 (patch) | |
tree | efaf95f700378af40d92138dcf68ae947d6dd565 /src/theory/theory_model.cpp | |
parent | bf682b92e2bddcd490604f8a65c440b9c4c2f2f9 (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.cpp | 17 |
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 */ |