1 #include "preprocess.h"
7 Preprocess::Preprocess(CSolver *_solver)
12 Preprocess::~Preprocess() {
15 void Preprocess::doTransform() {
16 if (!solver->isBooleanVarUsed() && solver->getTuner()->getTunable(PREPROCESS, &onoff) == 0)
19 BooleanIterator bit(solver);
20 while (bit.hasNext()) {
21 Boolean *b = bit.next();
22 if (b->type == BOOLEANVAR)
23 processBooleanVar((BooleanVar *)b);
28 void Preprocess::resolveBooleanVars() {
29 SetIteratorBoolean *iterator = toremove.iterator();
30 while (iterator->hasNext()) {
31 BooleanVar *bv = (BooleanVar *) iterator->next();
32 if (bv->polarity == P_TRUE) {
33 solver->replaceBooleanWithTrue(BooleanEdge(bv));
34 } else if (bv->polarity == P_FALSE) {
35 solver->replaceBooleanWithFalse(BooleanEdge(bv));
41 void Preprocess::processBooleanVar(BooleanVar *b) {
42 if (b->polarity == P_TRUE ||
43 b->polarity == P_FALSE) {