mirror of
https://github.com/Z3Prover/z3
synced 2025-06-23 14:23:40 +00:00
na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
1e3c3dc48f
commit
204b417396
3 changed files with 10 additions and 6 deletions
|
@ -246,10 +246,8 @@ namespace polysat {
|
||||||
unsigned get_num_vars() const { return m_vars.size(); }
|
unsigned get_num_vars() const { return m_vars.size(); }
|
||||||
void reset();
|
void reset();
|
||||||
|
|
||||||
svector<std::pair<unsigned, unsigned>> stack;
|
|
||||||
uint_set on_stack;
|
// void propagate_eqs();
|
||||||
lbool propagate_ineqs(unsigned idx);
|
|
||||||
void propagate_eqs();
|
|
||||||
vector<var_eq> const& var_eqs() const { return m_var_eqs; }
|
vector<var_eq> const& var_eqs() const { return m_var_eqs; }
|
||||||
|
|
||||||
void add_row(var_t base, unsigned num_vars, var_t const* vars, numeral const* coeffs);
|
void add_row(var_t base, unsigned num_vars, var_t const* vars, numeral const* coeffs);
|
||||||
|
@ -258,6 +256,10 @@ namespace polysat {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
svector<std::pair<unsigned, unsigned>> stack;
|
||||||
|
uint_set on_stack;
|
||||||
|
lbool propagate_ineqs(unsigned idx);
|
||||||
|
|
||||||
std::ostream& display_row(std::ostream& out, row const& r, bool values = true) const;
|
std::ostream& display_row(std::ostream& out, row const& r, bool values = true) const;
|
||||||
var_t get_base_var(row const& r) const { return m_rows[r.id()].m_base; }
|
var_t get_base_var(row const& r) const { return m_rows[r.id()].m_base; }
|
||||||
|
|
||||||
|
|
|
@ -1054,11 +1054,13 @@ namespace polysat {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if 0
|
||||||
template<typename Ext>
|
template<typename Ext>
|
||||||
void fixplex<Ext>::propagate_eqs() {
|
void fixplex<Ext>::propagate_eqs() {
|
||||||
for (unsigned i = 0; i < m_rows.size(); ++i)
|
for (unsigned i = 0; i < m_rows.size(); ++i)
|
||||||
get_offset_eqs(row(i));
|
get_offset_eqs(row(i));
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
template<typename Ext>
|
template<typename Ext>
|
||||||
|
@ -1105,7 +1107,7 @@ namespace polysat {
|
||||||
numeral cz, cu;
|
numeral cz, cu;
|
||||||
for (auto c : M.col_entries(x)) {
|
for (auto c : M.col_entries(x)) {
|
||||||
auto r2 = c.get_row();
|
auto r2 = c.get_row();
|
||||||
if (r1.id() >= r2.id())
|
if (r1.id() == r2.id())
|
||||||
continue;
|
continue;
|
||||||
if (!is_offset_row(r2, cz, z, cu, u))
|
if (!is_offset_row(r2, cz, z, cu, u))
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -114,7 +114,7 @@ namespace polysat {
|
||||||
fp.add_row(z, 3, ys2, coeffs2);
|
fp.add_row(z, 3, ys2, coeffs2);
|
||||||
fp.set_bounds(u, 1, 2, 1);
|
fp.set_bounds(u, 1, 2, 1);
|
||||||
fp.run();
|
fp.run();
|
||||||
fp.propagate_eqs();
|
// fp.propagate_eqs();
|
||||||
for (auto e : fp.var_eqs())
|
for (auto e : fp.var_eqs())
|
||||||
std::cout << e.x << " == " << e.y << "\n";
|
std::cout << e.x << " == " << e.y << "\n";
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue