Clover Coverage Report
Coverage timestamp: mer. juin 27 2007 07:27:16 CEST
9   73   3   3
8   39   0,56   3
3     1,67  
1    
 
  PBSolverWithImpliedClause       Line # 39 9 3 10% 0.1
 
No Tests
 
1    /*
2    * SAT4J: a SATisfiability library for Java Copyright (C) 2004-2006 Daniel Le Berre
3    *
4    * Based on the original minisat specification from:
5    *
6    * An extensible SAT solver. Niklas E?n and Niklas S?rensson. Proceedings of the
7    * Sixth International Conference on Theory and Applications of Satisfiability
8    * Testing, LNCS 2919, pp 502-518, 2003.
9    *
10    * This library is free software; you can redistribute it and/or modify it under
11    * the terms of the GNU Lesser General Public License as published by the Free
12    * Software Foundation; either version 2.1 of the License, or (at your option)
13    * any later version.
14    *
15    * This library is distributed in the hope that it will be useful, but WITHOUT
16    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17    * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
18    * details.
19    *
20    * You should have received a copy of the GNU Lesser General Public License
21    * along with this library; if not, write to the Free Software Foundation, Inc.,
22    * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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   
 
39    public class PBSolverWithImpliedClause extends PBSolver<ILits> {
40   
 
41  1 toggle 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   
 
51  0 toggle @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   
 
68  0 toggle @Override
69    public String toString(String prefix) {
70  0 return super.toString(prefix) + "\n" + prefix
71    + "Add implied clauses in preprocessing";
72    }
73    }