From 5ce70eb521cfd5bf6dd4f64f9950f0d132851b05 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Fri, 11 Jan 2013 17:55:03 -0800 Subject: [PATCH] Fix bug Signed-off-by: Leonardo de Moura --- src/math/realclosure/realclosure.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/math/realclosure/realclosure.cpp b/src/math/realclosure/realclosure.cpp index 3d4bfd3f7..b78e5d5f1 100644 --- a/src/math/realclosure/realclosure.cpp +++ b/src/math/realclosure/realclosure.cpp @@ -1925,7 +1925,7 @@ namespace realclosure { SASSERT(new_M_s.m() == new_taqrs.size()); SASSERT(new_M_s.m() == new_prs.size()); // The system must have a solution - sc_cardinalities.resize(new_taqrs.size()); + sc_cardinalities.resize(new_taqrs.size(), 0); // Solve // new_M_s * sc_cardinalities = new_taqrs VERIFY(mm().solve(new_M_s, sc_cardinalities.c_ptr(), new_taqrs.c_ptr())); @@ -3383,7 +3383,9 @@ namespace realclosure { scoped_mpbqi num_i(bqim()), den_i(bqim()); polynomial_interval(v->num(), v->ext()->interval(), num_i); polynomial_interval(v->den(), v->ext()->interval(), den_i); - div(num_i, den_i, inc_precision(prec, 2), v->interval()); + if (!contains_zero(num_i) && !contains_zero(den_i)) { + div(num_i, den_i, inc_precision(prec, 2), v->interval()); + } } } @@ -3883,7 +3885,7 @@ namespace realclosure { } } int_buffer sc_cardinalities; - sc_cardinalities.resize(new_taqrs.size()); + sc_cardinalities.resize(new_taqrs.size(), 0); // Solve // new_M_s * sc_cardinalities = new_taqrs VERIFY(mm().solve(new_M_s, sc_cardinalities.c_ptr(), new_taqrs.c_ptr()));