More tuner framework code
authorbdemsky <bdemsky@uci.edu>
Mon, 28 Aug 2017 01:51:45 +0000 (18:51 -0700)
committerbdemsky <bdemsky@uci.edu>
Mon, 28 Aug 2017 01:51:45 +0000 (18:51 -0700)
src/Tuner/autotuner.cc
src/Tuner/autotuner.h
src/Tuner/searchtuner.cc [new file with mode: 0644]
src/Tuner/searchtuner.h [new file with mode: 0644]
src/csolver.cc

index e1868c1..0ebcc2f 100644 (file)
@@ -1,7 +1,11 @@
 #include "autotuner.h"
 #include "csolver.h"
 
-void AutoTuner::tune(CSolver *base) {
+void AutoTuner::addProblem(CSolver *solver) {
+       solvers.push(solver);
+}
+
+void AutoTuner::tune() {
        
        
 }
index ca27f40..0b56541 100644 (file)
@@ -1,12 +1,15 @@
 #ifndef AUTOTUNER_H
 #define AUTOTUNER_H
 #include "classlist.h"
+#include "structs.h"
 
 class AutoTuner {
  public:
        AutoTuner();
-       void tune(CSolver *solver);
+       void addProblem(CSolver *solver);
+       void tune();
        MEMALLOC;
  private:
+       Vector<CSolver *> solvers;
 };
 #endif
diff --git a/src/Tuner/searchtuner.cc b/src/Tuner/searchtuner.cc
new file mode 100644 (file)
index 0000000..628ec8e
--- /dev/null
@@ -0,0 +1,31 @@
+#include "searchtuner.h"
+
+SearchTuner::SearchTuner() {
+}
+
+int SearchTuner::getTunable(TunableParam param, TunableDesc *descriptor) {
+       return 0;
+}
+
+int SearchTuner::getVarTunable(VarType vartype, TunableParam param, TunableDesc *descriptor) {
+       return 0;
+}
+
+TunableParameter::TunableParameter(VarType _type, TunableParam _param) :
+       hasVar(true),
+       type(_type),
+       param(_param) {
+}
+
+TunableParameter::TunableParameter(TunableParam _param) :
+       hasVar(false),
+       type(0),
+       param(_param) {
+}
+
+TunableDecision::TunableDecision(int _low, int _high, int _default, int _selection) :
+       lowValue(_low),
+       highValue(_high),
+       defaultValue(_default),
+       selectedValue(_selection) {
+}
diff --git a/src/Tuner/searchtuner.h b/src/Tuner/searchtuner.h
new file mode 100644 (file)
index 0000000..2d0facd
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef SEARCHTUNER_H
+#define SEARCHTUNER_H
+#include "classlist.h"
+#include "tunable.h"
+
+class SearchTuner : public Tuner {
+ public:
+       SearchTuner();
+       int getTunable(TunableParam param, TunableDesc *descriptor);
+       int getVarTunable(VarType vartype, TunableParam param, TunableDesc *descriptor);
+       MEMALLOC;
+ private:
+};
+
+class TunableParameter {
+ public:
+       TunableParameter(VarType type, TunableParam param);     
+       TunableParameter(TunableParam param);
+       MEMALLOC;
+ private:
+       bool hasVar;
+       VarType type;
+       TunableParam param;
+};
+
+class TunableDecision {
+ public:
+       TunableDecision(int _low, int _high, int _default, int _selection);
+       MEMALLOC;
+ private:
+       int lowValue;
+       int highValue;
+       int defaultValue;
+       int selectedValue;
+};
+
+#endif
index c83f4b9..eecbaf3 100644 (file)
@@ -245,5 +245,6 @@ long long CSolver::getSolveTime() { return satEncoder->getSolveTime(); }
 
 void CSolver::autoTune() {
        AutoTuner * autotuner=new AutoTuner();
-       autotuner->tune(this);
+       autotuner->addProblem(this);
+       autotuner->tune();
 }