00001
00002
00003
00004
00005
00006
00007
00008 #ifndef CbcCbcParam_H
00009 #define CbcCbcParam_H
00010
00011
00012
00013
00014
00015
00016
00017
00018
00026 class CbcCbcParam : public CoinParam
00027 {
00028
00029 public:
00030
00033
00041 typedef enum
00042 { CBCCBC_FIRSTPARAM = CbcGenParam::CBCGEN_LASTPARAM+1,
00043
00044 ALLOWABLEGAP, COSTSTRATEGY,
00045 CUTDEPTH, CUTOFF, CUTPASS, DIRECTION,
00046 GAPRATIO,
00047 INCREMENT, INFEASIBILITYWEIGHT, INTEGERTOLERANCE,
00048 LOGLEVEL, MAXIMIZE, MAXNODES, MINIMIZE,
00049 MIPOPTIONS, MOREMIPOPTIONS, NUMBERANALYZE,
00050 NUMBERBEFORE, NUMBERMINI,
00051 STRONGBRANCHING, TIMELIMIT_BAB,
00052
00053 CBCCBC_LASTPARAM
00054
00055 } CbcCbcParamCode ;
00056
00058
00067 CbcCbcParam() ;
00068
00075 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help,
00076 double lower, double upper, double dflt = 0.0,
00077 bool display = true) ;
00078
00083 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help,
00084 int lower, int upper, int dflt = 0,
00085 bool display = true) ;
00086
00096 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help,
00097 std::string firstValue, int dflt, bool display = true) ;
00098
00105 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help,
00106 std::string dflt, bool display = true) ;
00107
00110 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help,
00111 bool display = true) ;
00112
00115 CbcCbcParam(const CbcCbcParam &orig) ;
00116
00119 CbcCbcParam *clone() ;
00120
00123 CbcCbcParam &operator=(const CbcCbcParam &rhs) ;
00124
00127 ~CbcCbcParam() ;
00128
00130
00133
00136 inline CbcCbcParamCode paramCode() const { return (paramCode_) ; }
00137
00140 inline void setParamCode(CbcCbcParamCode code) { paramCode_ = code ; }
00141
00144 inline CbcModel *obj() const { return (obj_) ; }
00145
00148 inline void setObj(CbcModel *obj) { obj_ = obj ; }
00149
00151
00152 private:
00153
00156
00158 CbcCbcParamCode paramCode_ ;
00159
00161 CbcModel *obj_ ;
00162
00164
00165 } ;
00166
00167
00168
00169
00170
00171
00172 namespace CbcCbcParamUtils
00173 { void addCbcCbcParams(int &numParams, CoinParamVec ¶mVec,
00174 CbcModel *model) ;
00175 void loadCbcParamObj(const CoinParamVec paramVec, int first, int last,
00176 CbcModel *model) ;
00177 void setCbcModelDefaults (CbcModel *model) ;
00178
00179 int pushCbcCbcDbl(CoinParam *param) ;
00180 int pushCbcCbcInt(CoinParam *param) ;
00181 }
00182
00183 #endif