| 1 |  |  | 
        
| 2 |  |  | 
        
| 3 |  |  | 
        
| 4 |  |  | 
        
| 5 |  |  | 
        
| 6 |  |  | 
        
| 7 |  |  | 
        
| 8 |  |  | 
        
| 9 |  |  | 
        
| 10 |  |  | 
        
| 11 |  |  | 
        
| 12 |  |  | 
        
| 13 |  |  | 
        
| 14 |  |  | 
        
| 15 |  |  | 
        
| 16 |  |  | 
        
| 17 |  |  | 
        
| 18 |  |  | 
        
| 19 |  |  | 
        
| 20 |  |  | 
        
| 21 |  |  | 
        
| 22 |  |  | 
        
| 23 |  |  | 
        
| 24 |  |  | 
        
| 25 |  | package org.sat4j.minisat.constraints.pb; | 
        
| 26 |  |  | 
        
| 27 |  | import java.math.BigInteger; | 
        
| 28 |  |  | 
        
| 29 |  | import org.sat4j.minisat.core.AssertingClauseGenerator; | 
        
| 30 |  | import org.sat4j.minisat.core.DataStructureFactory; | 
        
| 31 |  | import org.sat4j.minisat.core.ILits; | 
        
| 32 |  | import org.sat4j.minisat.core.IOrder; | 
        
| 33 |  | import org.sat4j.minisat.core.LearningStrategy; | 
        
| 34 |  | import org.sat4j.specs.ContradictionException; | 
        
| 35 |  | import org.sat4j.specs.IConstr; | 
        
| 36 |  | import org.sat4j.specs.IVec; | 
        
| 37 |  | import org.sat4j.specs.IVecInt; | 
        
| 38 |  |  | 
           
        |  |  | 
           
           |  | 10% | Uncovered Elements: 18 (20) | Complexity: 3 | Complexity Density: 0,56 |  | 
  
| 39 |  | public class PBSolverWithImpliedClause extends PBSolver<ILits> { | 
        
| 40 |  |  | 
           
        |  |  | 
           
           |  | 100% | Uncovered Elements: 0 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
| 41 | 1 |  public PBSolverWithImpliedClause(AssertingClauseGenerator acg,... | 
        
| 42 |  | LearningStrategy<ILits> learner, DataStructureFactory<ILits> dsf, IOrder<ILits> order) { | 
        
| 43 | 1 | super(acg, learner, dsf, order); | 
        
| 44 |  | } | 
        
| 45 |  |  | 
        
| 46 |  |  | 
        
| 47 |  |  | 
        
| 48 |  |  | 
        
| 49 |  | private static final long serialVersionUID = 1L; | 
        
| 50 |  |  | 
           
        |  |  | 
           
           |  | 0% | Uncovered Elements: 15 (15) | Complexity: 3 | Complexity Density: 0,43 |  | 
  
| 51 | 0 |  @Override... | 
        
| 52 |  | public IConstr addPseudoBoolean(IVecInt literals, IVec<BigInteger> coeffs, | 
        
| 53 |  | boolean moreThan, BigInteger degree) throws ContradictionException { | 
        
| 54 | 0 | IVecInt vlits = dimacs2internal(literals); | 
        
| 55 | 0 | assert vlits.size() == literals.size(); | 
        
| 56 | 0 | assert literals.size() == coeffs.size(); | 
        
| 57 | 0 | PBConstr result = (PBConstr) dsfactory.createPseudoBooleanConstraint( | 
        
| 58 |  | vlits, coeffs, moreThan, degree); | 
        
| 59 | 0 | if (result != null) { | 
        
| 60 | 0 | IVecInt clits = result.computeAnImpliedClause(); | 
        
| 61 | 0 | if (clits != null) { | 
        
| 62 | 0 | addConstr(dsfactory.createClause(clits)); | 
        
| 63 |  | } | 
        
| 64 |  | } | 
        
| 65 | 0 | return addConstr(result); | 
        
| 66 |  | } | 
        
| 67 |  |  | 
           
        |  |  | 
           
           |  | 0% | Uncovered Elements: 1 (1) | Complexity: 1 | Complexity Density: 1 |  | 
  
| 68 | 0 |  @Override... | 
        
| 69 |  | public String toString(String prefix) { | 
        
| 70 | 0 | return super.toString(prefix) + "\n" + prefix | 
        
| 71 |  | + "Add implied clauses in preprocessing"; | 
        
| 72 |  | } | 
        
| 73 |  | } |