3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-16 05:48:44 +00:00

fixing bug with optimization

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2013-10-24 12:03:05 +08:00
parent 11010086be
commit 7c8fbbb06a
2 changed files with 8 additions and 1 deletions

View file

@ -993,7 +993,7 @@ namespace smt {
// Optimization // Optimization
// //
// ----------------------------------- // -----------------------------------
virtual bool maximize(theory_var v) { return max_min(v, true); } virtual bool maximize(theory_var v);
virtual theory_var add_objective(app* term); virtual theory_var add_objective(app* term);
virtual inf_eps_rational<inf_rational> get_objective_value(theory_var v); virtual inf_eps_rational<inf_rational> get_objective_value(theory_var v);
inf_rational m_objective; inf_rational m_objective;

View file

@ -975,6 +975,13 @@ namespace smt {
return internalize_term_core(term); return internalize_term_core(term);
} }
template<typename Ext>
bool theory_arith<Ext>::maximize(theory_var v) {
bool r = max_min(v, true);
return r || at_upper(v);
}
template<typename Ext> template<typename Ext>
inf_eps_rational<inf_rational> theory_arith<Ext>::get_objective_value(theory_var v) { inf_eps_rational<inf_rational> theory_arith<Ext>::get_objective_value(theory_var v) {
inf_eps_rational<inf_rational> val(m_objective); inf_eps_rational<inf_rational> val(m_objective);