Clover Coverage Report
Coverage timestamp: mer. juin 27 2007 07:27:16 CEST
4   65   1   1
0   21   1   4
4     1  
1    
 
  FirstUIP       Line # 42 4 1 75% 0.75
 
  (150)
 
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   
26    package org.sat4j.minisat.uip;
27   
28    import java.io.Serializable;
29   
30    import org.sat4j.minisat.core.AssertingClauseGenerator;
31    import org.sat4j.specs.IConstr;
32   
33    /**
34    * FirstUIP scheme introduced in Chaff. Here the generator stops when a
35    * syntactical criteria is met: only one literal in the current decision level
36    * appears in the generated clause. The computation is done by counting the
37    * literals appearing in the current decision level and decrementing that
38    * counter when a resolution step is done.
39    *
40    * @author leberre
41    */
 
42    public class FirstUIP implements AssertingClauseGenerator, Serializable {
43   
44    private static final long serialVersionUID = 1L;
45   
46    private int counter;
47   
 
48  182597450 toggle public void initAnalyze() {
49  182597450 counter = 0;
50    }
51   
 
52  1835798301 toggle public void onCurrentDecisionLevelLiteral(int p) {
53  1835798301 counter++;
54    }
55   
 
56  1835798301 toggle public boolean clauseNonAssertive(IConstr reason) {
57  1835798301 return --counter > 0;
58    }
59   
 
60  0 toggle @Override
61    public String toString() {
62  0 return "Stops conflict analysis at the first Unique Implication Point";
63    }
64   
65    }