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
26
27
28 package org.sat4j.minisat.constraints.cnf;
29
30 import org.sat4j.core.LiteralsUtils;
31 import org.sat4j.minisat.core.Constr;
32 import org.sat4j.minisat.core.ILits;
33 import org.sat4j.minisat.core.UnitPropagationListener;
34 import org.sat4j.specs.IVecInt;
35
36
37
38
39
40
41 public class UnitClause implements Constr {
42
43 protected final int literal;
44
45 public UnitClause(int value) {
46 literal = value;
47 }
48
49 public void assertConstraint(UnitPropagationListener s) {
50 s.enqueue(literal, this);
51 }
52
53 public void calcReason(int p, IVecInt outReason) {
54 if (p == ILits.UNDEFINED)
55 outReason.push(LiteralsUtils.neg(p));
56 }
57
58 public double getActivity() {
59 throw new UnsupportedOperationException();
60 }
61
62 public void incActivity(double claInc) {
63
64 }
65
66 public boolean locked() {
67 throw new UnsupportedOperationException();
68 }
69
70 public void register() {
71 throw new UnsupportedOperationException();
72 }
73
74 public void remove(UnitPropagationListener upl) {
75 upl.unset(literal);
76 }
77
78 public void rescaleBy(double d) {
79 throw new UnsupportedOperationException();
80 }
81
82 public void setLearnt() {
83 throw new UnsupportedOperationException();
84 }
85
86 public boolean simplify() {
87 return false;
88 }
89
90 public boolean propagate(UnitPropagationListener s, int p) {
91 throw new UnsupportedOperationException();
92 }
93
94 public int get(int i) {
95 if (i > 0)
96 throw new IllegalArgumentException();
97 return literal;
98 }
99
100 public boolean learnt() {
101 return false;
102 }
103
104 public int size() {
105 return 1;
106 }
107
108 public void forwardActivity(double claInc) {
109
110 }
111
112 @Override
113 public String toString() {
114 return Lits.toString(literal);
115 }
116
117 public boolean canBePropagatedMultipleTimes() {
118 return false;
119 }
120 }