mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Add parameter polysat.max_iterations for debugging
This commit is contained in:
		
							parent
							
								
									062ca92ebe
								
							
						
					
					
						commit
						afc292e5db
					
				
					 3 changed files with 5 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -4,6 +4,7 @@ def_module_params('polysat',
 | 
			
		|||
    params=(
 | 
			
		||||
        ('max_conflicts', UINT, UINT_MAX, "maximum number of conflicts before giving up"),
 | 
			
		||||
        ('max_decisions', UINT, UINT_MAX, "maximum number of decisions before giving up"),
 | 
			
		||||
        ('max_iterations', UINT, UINT_MAX, "maximum number of iterations before giving up"),
 | 
			
		||||
        # ('log', UINT, UINT_MAX, "polysat logging filter (TODO)"),
 | 
			
		||||
        ('log_start', UINT, UINT_MAX, "Enable logging on solver iteration N"),
 | 
			
		||||
        ('log_conflicts', BOOL, False, "log conflicts"),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -80,6 +80,7 @@ namespace polysat {
 | 
			
		|||
        m_params.append(p);
 | 
			
		||||
        m_config.m_max_conflicts = pp.max_conflicts();
 | 
			
		||||
        m_config.m_max_decisions = pp.max_decisions();
 | 
			
		||||
        m_config.m_max_iterations = pp.max_iterations();
 | 
			
		||||
        m_config.m_log_start = pp.log_start();
 | 
			
		||||
        m_config.m_log_conflicts = pp.log_conflicts();
 | 
			
		||||
        m_config.m_slicing_congruence = pp.slicing_congruence();
 | 
			
		||||
| 
						 | 
				
			
			@ -96,7 +97,8 @@ namespace polysat {
 | 
			
		|||
        return
 | 
			
		||||
            m_lim.inc() &&
 | 
			
		||||
            (m_stats.m_num_conflicts < config().m_max_conflicts) &&
 | 
			
		||||
            (m_stats.m_num_decisions < config().m_max_decisions);
 | 
			
		||||
            (m_stats.m_num_decisions < config().m_max_decisions) &&
 | 
			
		||||
            (m_stats.m_num_iterations < config().m_max_iterations);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    lbool solver::check_sat() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,6 +51,7 @@ namespace polysat {
 | 
			
		|||
    struct config_t {
 | 
			
		||||
        uint64_t    m_max_conflicts = std::numeric_limits<uint64_t>::max();
 | 
			
		||||
        uint64_t    m_max_decisions = std::numeric_limits<uint64_t>::max();
 | 
			
		||||
        uint64_t    m_max_iterations = std::numeric_limits<uint64_t>::max();
 | 
			
		||||
        unsigned    m_log_start     = UINT_MAX;
 | 
			
		||||
        bool        m_log_conflicts = false;
 | 
			
		||||
        bool        m_slicing_congruence = false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue