3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-31 03:32:28 +00:00

bug fixes to LUT extraction, bug fix for real value case of freedom intervals

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-02-11 14:25:16 -08:00
parent 806ee85759
commit c46e36ce58
9 changed files with 38 additions and 17 deletions

View file

@ -51,12 +51,7 @@ namespace sat {
clause_vector m_removed_clauses;
std::function<void (uint64_t, svector<bool_var> const& vars, bool_var v)> m_on_lut;
inline void set_combination(unsigned mask) {
if (!get_combination(mask)) {
m_combination |= (1ull << mask);
m_num_combinations++;
}
}
void set_combination(unsigned mask);
inline bool get_combination(unsigned mask) const { return (m_combination & (1ull << mask)) != 0; }
bool lut_is_defined(unsigned sz);
bool lut_is_defined(unsigned i, unsigned sz);
@ -70,6 +65,7 @@ namespace sat {
void init_clause_filter();
void init_clause_filter(clause_vector& clauses);
unsigned get_clause_filter(clause const& c);
std::ostream& display_mask(std::ostream& out, uint64_t mask, unsigned sz) const;
public:
lut_finder(solver& s) : s(s), m_max_lut_size(5) { }