void CSolver::serialize() {
model_print("serializing ...\n");
char buffer[255];
- struct timespec t;
- clock_gettime(CLOCK_REALTIME, &t);
-
- unsigned long long nanotime=t.tv_sec*1000000000+t.tv_nsec;
+ long long nanotime=getTimeNano();
int numchars=sprintf(buffer, "DUMP%llu", nanotime);
Serializer serializer(buffer);
SetIteratorBooleanEdge *it = getConstraints();
}
}
+#define NANOSEC 1000000000.0
int CSolver::solve() {
+ long long starttime = getTimeNano();
bool deleteTuner = false;
if (tuner == NULL) {
tuner = new DefaultTuner();
}
delete orderit;
}
-
- computePolarities(this);
+ computePolarities(this);
+ long long time2 = getTimeNano();
+ model_print("Polarity time: %f\n", (time2-starttime)/NANOSEC);
Preprocess pp(this);
pp.doTransform();
-
+ long long time3 = getTimeNano();
+ model_print("Preprocess time: %f\n", (time3-time2)/NANOSEC);
+
DecomposeOrderTransform dot(this);
dot.doTransform();
+ long long time4 = getTimeNano();
+ model_print("Decompose Order: %f\n", (time4-time3)/NANOSEC);
IntegerEncodingTransform iet(this);
iet.doTransform();
eg.encode();
naiveEncodingDecision(this);
-
+ long long time5 = getTimeNano();
+ model_print("Encoding Graph Time: %f\n", (time5-time4)/NANOSEC);
+
long long startTime = getTimeNano();
satEncoder->encodeAllSATEncoder(this);
+ long long endTime = getTimeNano();
+
+ elapsedTime = endTime - startTime;
+ model_print("Elapse Encode time: %f\n", elapsedTime/NANOSEC);
+
model_print("Is problem UNSAT after encoding: %d\n", unsat);
int result = unsat ? IS_UNSAT : satEncoder->solve();
model_print("Result Computed in CSolver: %d\n", result);
- long long finishTime = getTimeNano();
- elapsedTime = finishTime - startTime;
+
if (deleteTuner) {
delete tuner;
tuner = NULL;