--- /dev/null
+#include "elementopt.h"
+#include "csolver.h"
+#include "tunable.h"
+#include "iterator.h"
+
+ElementOpt::ElementOpt(CSolver *_solver)
+ : Transform(_solver)
+{
+}
+
+ElementOpt::~ElementOpt() {
+}
+
+void ElementOpt::doTransform() {
+ if (solver->getTuner()->getTunable(ELEMENTOPT, &onoff) == 0)
+ return;
+
+ BooleanIterator bit(solver);
+ while (bit.hasNext()) {
+ Boolean *b = bit.next();
+ }
+}
}
}
+void generateAddConstraint(CNF *cnf, uint nSum, Edge *sum, uint nVar1, Edge *var1, uint nVar2, Edge *var2) {
+ //TO WRITE....
+}
+
Edge generateEquivNVConstraint(CNF *cnf, uint numvars, Edge *var1, Edge *var2) {
if (numvars == 0)
return E_True;
static TunableDesc onoff(0, 1, 1);
static TunableDesc offon(0, 1, 0);
-enum Tunables {DECOMPOSEORDER, MUSTREACHGLOBAL, MUSTREACHLOCAL, MUSTREACHPRUNE, OPTIMIZEORDERSTRUCTURE, ORDERINTEGERENCODING, PREPROCESS, NODEENCODING, EDGEENCODING, MUSTEDGEPRUNE};
+enum Tunables {DECOMPOSEORDER, MUSTREACHGLOBAL, MUSTREACHLOCAL, MUSTREACHPRUNE, OPTIMIZEORDERSTRUCTURE, ORDERINTEGERENCODING, PREPROCESS, NODEENCODING, EDGEENCODING, MUSTEDGEPRUNE, ELEMENTOPT};
typedef enum Tunables Tunables;
const char* tunableParameterToString(Tunables tunable);