mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	work on incremental version
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
		
							parent
							
								
									d68ebeeb9f
								
							
						
					
					
						commit
						71c433908c
					
				
					 4 changed files with 754 additions and 346 deletions
				
			
		| 
						 | 
				
			
			@ -2,4 +2,4 @@ BasedOnStyle: Google
 | 
			
		|||
IndentWidth: 4
 | 
			
		||||
ColumnLimit: 0
 | 
			
		||||
NamespaceIndentation: All
 | 
			
		||||
BreakBeforeBraces: Stroustrup
 | 
			
		||||
BreakBeforeBraces: Attach
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -66,12 +66,12 @@ enum class lp_status {
 | 
			
		|||
    UNBOUNDED,
 | 
			
		||||
    TENTATIVE_DUAL_UNBOUNDED,
 | 
			
		||||
    DUAL_UNBOUNDED,
 | 
			
		||||
    OPTIMAL,
 | 
			
		||||
    FEASIBLE,
 | 
			
		||||
    TIME_EXHAUSTED,
 | 
			
		||||
    EMPTY,
 | 
			
		||||
    UNSTABLE,
 | 
			
		||||
    CANCELLED
 | 
			
		||||
    CANCELLED,
 | 
			
		||||
    FEASIBLE,
 | 
			
		||||
    OPTIMAL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// when the ratio of the vector length to domain size to is greater than the return value we switch to solve_By_for_T_indexed_only
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1957,13 +1957,32 @@ public:
 | 
			
		|||
    literal mk_literal(nla::ineq const& ineq) {
 | 
			
		||||
        bool is_lower = true, pos = true, is_eq = false;
 | 
			
		||||
        switch (ineq.cmp()) {
 | 
			
		||||
        case lp::LE: is_lower = false; pos = false;  break;
 | 
			
		||||
        case lp::LT: is_lower = true;  pos = true; break;
 | 
			
		||||
        case lp::GE: is_lower = true;  pos = false;  break;
 | 
			
		||||
        case lp::GT: is_lower = false; pos = true; break;
 | 
			
		||||
        case lp::EQ: is_eq = true; pos = false; break;
 | 
			
		||||
        case lp::NE: is_eq = true; pos = true; break;
 | 
			
		||||
        default: UNREACHABLE();
 | 
			
		||||
        case lp::LE:
 | 
			
		||||
            is_lower = false;
 | 
			
		||||
            pos = false;
 | 
			
		||||
            break;
 | 
			
		||||
        case lp::LT:
 | 
			
		||||
            is_lower = true;
 | 
			
		||||
            pos = true;
 | 
			
		||||
            break;
 | 
			
		||||
        case lp::GE:
 | 
			
		||||
            is_lower = true;
 | 
			
		||||
            pos = false;
 | 
			
		||||
            break;
 | 
			
		||||
        case lp::GT:
 | 
			
		||||
            is_lower = false;
 | 
			
		||||
            pos = true;
 | 
			
		||||
            break;
 | 
			
		||||
        case lp::EQ:
 | 
			
		||||
            is_eq = true;
 | 
			
		||||
            pos = false;
 | 
			
		||||
            break;
 | 
			
		||||
        case lp::NE:
 | 
			
		||||
            is_eq = true;
 | 
			
		||||
            pos = true;
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            UNREACHABLE();
 | 
			
		||||
        }
 | 
			
		||||
        TRACE("arith", tout << "is_lower: " << is_lower << " pos " << pos << "\n";);
 | 
			
		||||
        expr_ref atom(m);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue