X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2FTuner%2Ftunable.h;h=da3d44a8ec3dd521e496668eec9f3a1bd489dc76;hb=8b5be625244b8a2764d254885fad5c67a825caa3;hp=5816d7e7b2e8612d598210e1c96d8f95a68bb6fc;hpb=1c230147d56620693852796e1f23ad4c31a55fd5;p=satune.git diff --git a/src/Tuner/tunable.h b/src/Tuner/tunable.h index 5816d7e..da3d44a 100644 --- a/src/Tuner/tunable.h +++ b/src/Tuner/tunable.h @@ -1,23 +1,35 @@ #ifndef TUNABLE_H #define TUNABLE_H #include "classlist.h" - +#include "common.h" class Tuner { - public: - Tuner(); - int getTunable(TunableParam param, TunableDesc * descriptor); - int getVarTunable(VarType vartype, TunableParam param, TunableDesc * descriptor); - MEMALLOC; +public: + virtual int getTunable(TunableParam param, TunableDesc *descriptor) {ASSERT(0); return 0;} + virtual int getVarTunable(VarType vartype, TunableParam param, TunableDesc *descriptor) {ASSERT(0); return 0;} + virtual int getVarTunable(VarType vartype1, VarType vartype2, TunableParam param, TunableDesc *descriptor) {ASSERT(0); return 0;} + virtual ~Tuner() {} + CMEMALLOC; +}; + +class DefaultTuner : public Tuner { +public: + DefaultTuner(); + int getTunable(TunableParam param, TunableDesc *descriptor); + int getVarTunable(VarType vartype, TunableParam param, TunableDesc *descriptor); + int getVarTunable(VarType vartype1, VarType vartype2, TunableParam param, TunableDesc *descriptor); + CMEMALLOC; }; + + class TunableDesc { - public: - TunableDesc(int _lowValue, int _highValue, int _defaultValue) : lowValue(_lowValue), highValue(_highValue), defaultValue(_defaultValue) {} +public: + TunableDesc(int _lowValue, int _highValue, int _defaultValue) : lowValue(_lowValue), highValue(_highValue), defaultValue(_defaultValue) {} int lowValue; int highValue; int defaultValue; - MEMALLOC; + CMEMALLOC; }; @@ -26,7 +38,14 @@ class TunableDesc { static TunableDesc onoff(0, 1, 1); static TunableDesc offon(0, 1, 0); +static TunableDesc proxyparameter(1, 5, 2); +static TunableDesc mustValueBinaryIndex(5, 9, 8); +static TunableDesc NodeEncodingDesc(ELEM_UNASSIGNED, BINARYINDEX, ELEM_UNASSIGNED); +static TunableDesc NaiveEncodingDesc(ONEHOT, BINARYINDEX, ONEHOT); -enum Tunables {DECOMPOSEORDER, MUSTREACHGLOBAL, MUSTREACHLOCAL, MUSTREACHPRUNE, OPTIMIZEORDERSTRUCTURE, ORDERINTEGERENCODING}; +enum Tunables {DECOMPOSEORDER, MUSTREACHGLOBAL, MUSTREACHLOCAL, MUSTREACHPRUNE, OPTIMIZEORDERSTRUCTURE, ORDERINTEGERENCODING, PREPROCESS, NODEENCODING, EDGEENCODING, MUSTEDGEPRUNE, ELEMENTOPT, + ENCODINGGRAPHOPT, ELEMENTOPTSETS, PROXYVARIABLE, MUSTVALUE, NAIVEENCODER}; typedef enum Tunables Tunables; + +const char *tunableParameterToString(Tunables tunable); #endif