@@ -11,13 +11,18 @@ Author: Alex Groce
11
11
#include < cstdlib>
12
12
#include < cstring>
13
13
#include < fstream>
14
+
15
+ #ifdef DEBUG
14
16
#include < iostream>
17
+ #endif
15
18
16
19
void pbs_dimacs_cnft::write_dimacs_pb (std::ostream &out)
17
20
{
18
21
double d_sum = 0 ;
19
22
20
- // std::cout << "enter: No Lit.=" << no_variables () << "\n";
23
+ #ifdef DEBUG
24
+ std::cout << " enter: No Lit.=" << no_variables () << " \n " ;
25
+ #endif
21
26
22
27
for (std::map<literalt, unsigned >::const_iterator it =
23
28
pb_constraintmap.begin ();
@@ -51,12 +56,16 @@ void pbs_dimacs_cnft::write_dimacs_pb(std::ostream &out)
51
56
out << " v" << dimacs_lit << " c" << lit_entry.second << " \n " ;
52
57
}
53
58
54
- // std::cout << "exit: No Lit.=" << no_variables () << "\n";
59
+ #ifdef DEBUG
60
+ std::cout << " exit: No Lit.=" << no_variables () << " \n " ;
61
+ #endif
55
62
}
56
63
57
64
bool pbs_dimacs_cnft::pbs_solve ()
58
65
{
59
- // std::cout << "solve: No Lit.=" << no_variables () << "\n";
66
+ #ifdef DEBUG
67
+ std::cout << " solve: No Lit.=" << no_variables () << " \n " ;
68
+ #endif
60
69
61
70
std::string command;
62
71
@@ -69,8 +78,10 @@ bool pbs_dimacs_cnft::pbs_solve()
69
78
70
79
command += " pbs" ;
71
80
72
- // std::cout << "PBS COMMAND IS: " << command << "\n";
73
- /*
81
+ #ifdef DEBUG
82
+ std::cout << " PBS COMMAND IS: " << command << " \n " ;
83
+ #endif
84
+ #if 0
74
85
if (!(getenv("PBS_PATH")==NULL))
75
86
{
76
87
command=getenv("PBS_PATH");
@@ -80,7 +91,7 @@ bool pbs_dimacs_cnft::pbs_solve()
80
91
error ("Unable to read PBS_PATH environment variable.\n");
81
92
return false;
82
93
}
83
- */
94
+ # endif
84
95
85
96
command += " -f temp.cnf" ;
86
97
@@ -93,7 +104,10 @@ bool pbs_dimacs_cnft::pbs_solve()
93
104
}
94
105
else
95
106
{
96
- // std::cout << "NO BINARY SEARCH" << "\n";
107
+ #ifdef DEBUG
108
+ std::cout << " NO BINARY SEARCH"
109
+ << " \n " ;
110
+ #endif
97
111
command += " -S 1000 -D 1 -I -a" ;
98
112
}
99
113
}
@@ -130,43 +144,57 @@ bool pbs_dimacs_cnft::pbs_solve()
130
144
strstr (line.c_str (), " Variable Assignments Satisfying CNF Formula:" ) !=
131
145
nullptr )
132
146
{
133
- // print ("Reading assignments...\n");
134
- // std::cout << "No literals: " << no_variables() << "\n";
147
+ #ifdef DEBUG
148
+ std::cout << " Reading assignments...\n " ;
149
+ std::cout << " No literals: " << no_variables () << " \n " ;
150
+ #endif
135
151
satisfied = true ;
136
152
assigned.clear ();
137
153
for (size_t i = 0 ; (file && (i < no_variables ())); ++i)
138
154
{
139
155
file >> v;
140
156
if (v > 0 )
141
157
{
142
- // std::cout << v << " ";
158
+ #ifdef DEBUG
159
+ std::cout << v << " " ;
160
+ #endif
143
161
assigned.insert (v);
144
162
}
145
163
}
146
- // std::cout << "\n";
147
- // print ("Finished reading assignments.\n");
164
+ #ifdef DEBUG
165
+ std::cout << " \n " ;
166
+ std::cout << " Finished reading assignments.\n " ;
167
+ #endif
148
168
}
149
169
else if (strstr (line.c_str (), " SAT... SUM" ) != nullptr )
150
170
{
151
- // print (line);
171
+ #ifdef DEBUG
172
+ std::cout << line;
173
+ #endif
152
174
sscanf (line.c_str (), " %*s %*s %*s %d" , &opt_sum);
153
175
}
154
176
else if (strstr (line.c_str (), " SAT - All implied" ) != nullptr )
155
177
{
156
- // print (line);
178
+ #ifdef DEBUG
179
+ std::cout << line;
180
+ #endif
157
181
sscanf (
158
182
line.c_str (),
159
183
" %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %d" ,
160
184
&opt_sum);
161
185
}
162
186
else if (strstr (line.c_str (), " SAT... Solution" ) != nullptr )
163
187
{
164
- // print(line);
188
+ #ifdef DEBUG
189
+ std::cout << line;
190
+ #endif
165
191
sscanf (line.c_str (), " %*s %*s %*s %d" , &opt_sum);
166
192
}
167
193
else if (strstr (line.c_str (), " Optimal Soln" ) != nullptr )
168
194
{
169
- // print(line);
195
+ #ifdef DEBUG
196
+ std::cout << line;
197
+ #endif
170
198
if (strstr (line.c_str (), " time out" ) != nullptr )
171
199
{
172
200
status () << " WARNING: TIMED OUT. SOLUTION MAY BE INCORRECT." << eom;
@@ -220,7 +248,9 @@ tvt pbs_dimacs_cnft::l_get(literalt a) const
220
248
{
221
249
int dimacs_lit = a.dimacs ();
222
250
223
- // std::cout << a << " / " << dimacs_lit << "=";
251
+ #ifdef DEBUG
252
+ std::cout << a << " / " << dimacs_lit << " =" ;
253
+ #endif
224
254
225
255
bool neg = (dimacs_lit < 0 );
226
256
if (neg)
@@ -232,25 +262,33 @@ tvt pbs_dimacs_cnft::l_get(literalt a) const
232
262
{
233
263
if (f == assigned.end ())
234
264
{
235
- // std::cout << "FALSE" << "\n";
265
+ #ifdef DEBUG
266
+ std::cout << " FALSE\n " ;
267
+ #endif
236
268
return tvt (false );
237
269
}
238
270
else
239
271
{
240
- // std::cout << "TRUE" << "\n";
272
+ #ifdef DEBUG
273
+ std::cout << " TRUE\n " ;
274
+ #endif
241
275
return tvt (true );
242
276
}
243
277
}
244
278
else
245
279
{
246
280
if (f != assigned.end ())
247
281
{
248
- // std::cout << "FALSE" << "\n";
282
+ #ifdef DEBUG
283
+ std::cout << " FALSE\n " ;
284
+ #endif
249
285
return tvt (false );
250
286
}
251
287
else
252
288
{
253
- // std::cout << "TRUE" << "\n";
289
+ #ifdef DEBUG
290
+ std::cout << " TRUE\n " ;
291
+ #endif
254
292
return tvt (true );
255
293
}
256
294
}
0 commit comments