3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-16 13:58:45 +00:00

Final fixes

This commit is contained in:
Clemens Eisenhofer 2022-12-08 12:40:26 +01:00
parent 32b5dc31d1
commit f7d9cdd18b
2 changed files with 19 additions and 15 deletions

View file

@ -763,6 +763,19 @@ inline void EGaussian::update_cols_vals_set(literal lit) {
// In case the argument is false it only updates the recently added variables. If true, it recalculates all
void EGaussian::update_cols_vals_set(bool force) {
SASSERT(initialized);
auto output_rows = [this]() {
std::cout << "Col-Unassigned: ";
for (int i = 0; i < 64 * m_cols_unset->size; ++i) {
std::cout << (*m_cols_unset)[i];
}
std::cout << "\n";
std::cout << "Col-Values: ";
for (int i = 0; i < 64 * m_cols_vals->size; ++i) {
std::cout << (*m_cols_vals)[i];
}
std::cout << std::endl;
};
if (recalculate_values || force) {
m_cols_vals->setZero();
@ -779,6 +792,7 @@ void EGaussian::update_cols_vals_set(bool force) {
last_val_update = m_solver.s().trail_size();
recalculate_values = false;
TRACE("xor", tout << "last val update set to " << last_val_update << "\n");
output_rows();
return;
}
@ -797,17 +811,7 @@ void EGaussian::update_cols_vals_set(bool force) {
}
}
last_val_update = m_solver.s().trail_size();
std::cout << "Col-Unassigned: ";
for (int i = 0; i < 64 * m_cols_unset->size; ++i) {
std::cout << (*m_cols_unset)[i];
}
std::cout << "\n";
std::cout << "Col-Values: ";
for (int i = 0; i < 64 * m_cols_vals->size; ++i) {
std::cout << (*m_cols_vals)[i];
}
std::cout << std::endl;
output_rows();
}
void EGaussian::prop_lit(const gauss_data& gqd, unsigned row_i, literal ret_lit_prop) {

View file

@ -280,13 +280,13 @@ namespace xr {
}
m_justifications_lim.shrink(old_sz);
m_justifications.shrink(old_sz);*/
check_need_gauss_jordan_disable(); // Do this before enforcing recalcultion!
for (unsigned i = 0; i < m_gmatrices.size(); i++)
if (m_gmatrices[i] && !m_gqueuedata[i].disabled)
m_gmatrices[i]->enforce_recalculate();
check_need_gauss_jordan_disable();
if (m_region)
m_region->pop_scope(num_scopes);
}
@ -408,7 +408,7 @@ namespace xr {
}
}
// disables matrixes if applicable
// disables matrices if applicable
void solver::check_need_gauss_jordan_disable() {
for (unsigned i = 0; i < m_gqueuedata.size(); i++) {
auto& gqd = m_gqueuedata[i];
@ -423,7 +423,7 @@ namespace xr {
}*/
gqd.reset();
m_gmatrices[i]->update_cols_vals_set(false);
m_gmatrices[i]->update_cols_vals_set(false); // TODO: Probably we don't need this as we reset it anyway afterwards everywhere we call this function. Remove?
}
}