3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 00:26:38 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-07-02 13:30:15 -07:00
parent cc4354ffd5
commit c053c7f1c8
3 changed files with 4 additions and 0 deletions

View file

@ -42,6 +42,7 @@ template<typename Numeral>
class mod_interval {
bool emp { false };
public:
virtual ~mod_interval() {}
Numeral lo { 0 };
Numeral hi { 0 };
mod_interval() {}
@ -65,6 +66,7 @@ public:
void intersect_ugt(Numeral const& l);
void intersect_fixed(Numeral const& n);
void intersect_diff(Numeral const& n);
mod_interval operator&(mod_interval const& other) const;
mod_interval operator+(mod_interval const& other) const;
mod_interval operator-(mod_interval const& other) const;

View file

@ -97,6 +97,7 @@ namespace polysat {
m_base2row(0),
m_is_base(false)
{}
~var_info() override {}
var_info& operator&=(mod_interval<numeral> const& range) {
mod_interval<numeral>::operator=(range & *this);
return *this;

View file

@ -48,6 +48,7 @@ namespace polysat {
bool narrow(std::function<bool(rational const&)>& eval);
public:
viable_set(unsigned num_bits): m_num_bits(num_bits) {}
~viable_set() override {}
dd::find_t find_hint(rational const& c, rational& val) const;
bool intersect_eq(rational const& a, rational const& b, bool is_positive);
bool intersect_le(rational const& a, rational const& b, rational const& c, rational const& d, bool is_positive);