mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 13:29:11 +00:00 
			
		
		
		
	update logging for hilbert
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									e0c73d9bc1
								
							
						
					
					
						commit
						2a75f1d71e
					
				
					 2 changed files with 15 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -518,7 +518,7 @@ private:
 | 
			
		|||
        SASSERT(m_keys.size() == num_keys());
 | 
			
		||||
        iterator it = begin();
 | 
			
		||||
        trie* new_root = mk_trie();
 | 
			
		||||
        IF_VERBOSE(1, verbose_stream() << "before reshuffle: " << m_root->num_nodes() << " nodes\n";);
 | 
			
		||||
        IF_VERBOSE(2, verbose_stream() << "before reshuffle: " << m_root->num_nodes() << " nodes\n";);
 | 
			
		||||
        for (; it != end(); ++it) {
 | 
			
		||||
            IF_VERBOSE(2, 
 | 
			
		||||
                       for (unsigned i = 0; i < num_keys(); ++i) {
 | 
			
		||||
| 
						 | 
				
			
			@ -539,7 +539,7 @@ private:
 | 
			
		|||
            m_keys[i] = new_keys[i];
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        IF_VERBOSE(1, verbose_stream() << "after reshuffle: " << new_root->num_nodes() << " nodes\n";);
 | 
			
		||||
        IF_VERBOSE(2, verbose_stream() << "after reshuffle: " << new_root->num_nodes() << " nodes\n";);
 | 
			
		||||
        IF_VERBOSE(2, 
 | 
			
		||||
                   it = begin();
 | 
			
		||||
                   for (; it != end(); ++it) {                       
 | 
			
		||||
| 
						 | 
				
			
			@ -559,7 +559,7 @@ private:
 | 
			
		|||
        if (index == num_keys()) {
 | 
			
		||||
            SASSERT(n->ref_count() > 0);
 | 
			
		||||
            bool r = check(to_leaf(n)->get_value());
 | 
			
		||||
            IF_VERBOSE(1, 
 | 
			
		||||
            IF_VERBOSE(2, 
 | 
			
		||||
                       for (unsigned j = 0; j < index; ++j) {
 | 
			
		||||
                           verbose_stream() << " ";
 | 
			
		||||
                       }
 | 
			
		||||
| 
						 | 
				
			
			@ -572,7 +572,7 @@ private:
 | 
			
		|||
            for (unsigned i = 0; i < nodes.size(); ++i) {
 | 
			
		||||
                ++m_stats.m_num_find_le_nodes;
 | 
			
		||||
                node* m = nodes[i].second;
 | 
			
		||||
                IF_VERBOSE(1,
 | 
			
		||||
                IF_VERBOSE(2,
 | 
			
		||||
                           for (unsigned j = 0; j < index; ++j) {
 | 
			
		||||
                               verbose_stream() << " ";
 | 
			
		||||
                           }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,7 @@ Revision History:
 | 
			
		|||
#include "heap.h"
 | 
			
		||||
#include "map.h"
 | 
			
		||||
#include "heap_trie.h"
 | 
			
		||||
#include "stopwatch.h"
 | 
			
		||||
 | 
			
		||||
template<typename Value>
 | 
			
		||||
class rational_map : public map<rational, Value, rational::hash_proc, rational::eq_proc> {};
 | 
			
		||||
| 
						 | 
				
			
			@ -777,9 +778,18 @@ lbool hilbert_basis::saturate() {
 | 
			
		|||
    init_basis();
 | 
			
		||||
    m_current_ineq = 0;
 | 
			
		||||
    while (!m_cancel && m_current_ineq < m_ineqs.size()) {
 | 
			
		||||
        IF_VERBOSE(1, { statistics st; collect_statistics(st); st.display(verbose_stream()); });
 | 
			
		||||
        select_inequality();
 | 
			
		||||
        stopwatch sw;
 | 
			
		||||
        sw.start();
 | 
			
		||||
        lbool r = saturate(m_ineqs[m_current_ineq], m_iseq[m_current_ineq]);
 | 
			
		||||
        IF_VERBOSE(1,  
 | 
			
		||||
                   { statistics st; 
 | 
			
		||||
                       collect_statistics(st); 
 | 
			
		||||
                       st.display(verbose_stream()); 
 | 
			
		||||
                       sw.stop(); 
 | 
			
		||||
                       verbose_stream() << "time: " << sw.get_seconds() << "\n";
 | 
			
		||||
                   });
 | 
			
		||||
 | 
			
		||||
        ++m_stats.m_num_saturations;
 | 
			
		||||
        if (r != l_true) {
 | 
			
		||||
            return r;
 | 
			
		||||
| 
						 | 
				
			
			@ -933,14 +943,6 @@ lbool hilbert_basis::saturate(num_vector const& ineq, bool is_eq) {
 | 
			
		|||
        m_free_list.push_back(m_basis.back());
 | 
			
		||||
        m_basis.pop_back();
 | 
			
		||||
    }
 | 
			
		||||
    for (unsigned i = 0; i < init_basis_size; ++i) {
 | 
			
		||||
        offset_t idx = m_basis[i];
 | 
			
		||||
        if (vec(idx).weight().is_neg()) {
 | 
			
		||||
            m_basis[i] = m_basis.back();
 | 
			
		||||
            m_basis.pop_back();
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    m_basis.append(m_zero);
 | 
			
		||||
    std::sort(m_basis.begin(), m_basis.end(), vector_lt_t(*this));
 | 
			
		||||
    m_zero.reset();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue