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 public:
00029
00032
00040 typedef enum { CBCCBC_FIRSTPARAM = CbcGenParam::CBCGEN_LASTPARAM + 1,
00041
00042 ALLOWABLEGAP, COSTSTRATEGY,
00043 CUTDEPTH, CUTOFF, CUTPASS, DIRECTION,
00044 GAPRATIO,
00045 INCREMENT, INFEASIBILITYWEIGHT, INTEGERTOLERANCE,
00046 LOGLEVEL, MAXIMIZE, MAXNODES, MINIMIZE,
00047 MIPOPTIONS, MOREMIPOPTIONS, NUMBERANALYZE,
00048 NUMBERBEFORE, NUMBERMINI,
00049 STRONGBRANCHING, TIMELIMIT_BAB,
00050
00051 CBCCBC_LASTPARAM
00052
00053 } CbcCbcParamCode ;
00054
00056
00065 CbcCbcParam() ;
00066
00073 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help,
00074 double lower, double upper, double dflt = 0.0,
00075 bool display = true) ;
00076
00081 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help,
00082 int lower, int upper, int dflt = 0,
00083 bool display = true) ;
00084
00094 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help,
00095 std::string firstValue, int dflt, bool display = true) ;
00096
00103 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help,
00104 std::string dflt, bool display = true) ;
00105
00108 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help,
00109 bool display = true) ;
00110
00113 CbcCbcParam(const CbcCbcParam &orig) ;
00114
00117 CbcCbcParam *clone() ;
00118
00121 CbcCbcParam &operator=(const CbcCbcParam &rhs) ;
00122
00125 ~CbcCbcParam() ;
00126
00128
00131
00134 inline CbcCbcParamCode paramCode() const {
00135 return (paramCode_) ;
00136 }
00137
00140 inline void setParamCode(CbcCbcParamCode code) {
00141 paramCode_ = code ;
00142 }
00143
00146 inline CbcModel *obj() const {
00147 return (obj_) ;
00148 }
00149
00152 inline void setObj(CbcModel *obj) {
00153 obj_ = obj ;
00154 }
00155
00157
00158 private:
00159
00162
00164 CbcCbcParamCode paramCode_ ;
00165
00167 CbcModel *obj_ ;
00168
00170
00171 } ;
00172
00173
00174
00175
00176
00177
00178 namespace CbcCbcParamUtils {
00179 void addCbcCbcParams(int &numParams, CoinParamVec ¶mVec,
00180 CbcModel *model) ;
00181 void loadCbcParamObj(const CoinParamVec paramVec, int first, int last,
00182 CbcModel *model) ;
00183 void setCbcModelDefaults (CbcModel *model) ;
00184
00185 int pushCbcCbcDbl(CoinParam *param) ;
00186 int pushCbcCbcInt(CoinParam *param) ;
00187 }
00188
00189 #endif
00190