00001
00002
00003
00004
00005
00006
00007
00008 #ifndef CbcOsiParam_H
00009 #define CbcOsiParam_H
00010
00011
00012
00013
00014
00015
00016
00017
00018
00026 class CbcOsiParam : public CoinParam {
00027
00028 public:
00029
00032
00041 typedef enum { CBCOSI_FIRSTPARAM = CbcCbcParam::CBCCBC_LASTPARAM + 1,
00042
00043 ALGORITHM, ALLSLACK, AUTOSCALE, BARRIER, BARRIERSCALE,
00044 BASISIN, BASISOUT, BIASLU, CHOLESKY, CRASH, CROSSOVER,
00045 DUALBOUND, DUALPIVOT, DUALSIMPLEX, DUALTOLERANCE, FAKEBOUND,
00046 GAMMA, IDIOT, KEEPNAMES, KKT, MAXITERATION, MAXHOTITS, NETLIB_BARRIER,
00047 NETLIB_DUAL, NETLIB_PRIMAL, NETWORK, OBJSCALE, PERTURBATION,
00048 PERTVALUE, PFI, PLUSMINUS, PRESOLVE, PRESOLVEOPTIONS, PRESOLVEPASS,
00049 PRIMALPIVOT, PRIMALSIMPLEX, PRIMALTOLERANCE, REALLY_SCALE,
00050 RESTORE, REVERSE, RHSSCALE, SAVE, SCALING, SLPVALUE, SOLVERLOGLEVEL,
00051 SPARSEFACTOR, SPECIALOPTIONS, SPRINT, TIGHTEN,
00052
00053 CBCOSI_LASTPARAM
00054
00055 } CbcOsiParamCode ;
00056
00058
00067 CbcOsiParam() ;
00068
00075 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00076 double lower, double upper, double dflt = 0.0,
00077 bool display = true) ;
00078
00083 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00084 int lower, int upper, int dflt = 0,
00085 bool display = true) ;
00086
00096 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00097 std::string firstValue, int dflt, bool display = true) ;
00098
00105 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00106 std::string dflt, bool display = true) ;
00107
00110 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00111 bool display = true) ;
00112
00115 CbcOsiParam(const CbcOsiParam &orig) ;
00116
00119 CbcOsiParam *clone() ;
00120
00123 CbcOsiParam &operator=(const CbcOsiParam &rhs) ;
00124
00127 ~CbcOsiParam() ;
00128
00130
00133
00136 inline CbcOsiParamCode paramCode() const {
00137 return (paramCode_) ;
00138 }
00139
00142 inline void setParamCode(CbcOsiParamCode code) {
00143 paramCode_ = code ;
00144 }
00145
00148 inline OsiSolverInterface *obj() const {
00149 return (obj_) ;
00150 }
00151
00154 inline void setObj(OsiSolverInterface *obj) {
00155 obj_ = obj ;
00156 }
00157
00159
00160
00161 private:
00162
00165
00167 CbcOsiParamCode paramCode_ ;
00168
00170 OsiSolverInterface *obj_ ;
00171
00173
00174 } ;
00175
00176
00177
00178
00179
00180
00181
00182 namespace CbcOsiParamUtils {
00183 void addCbcOsiParams(int &numParams, CoinParamVec ¶mVec,
00184 OsiSolverInterface *osi) ;
00185 void loadOsiParamObj(const CoinParamVec paramVec,
00186 CbcGenCtlBlk *ctlBlk) ;
00187 void setOsiSolverInterfaceDefaults(OsiSolverInterface *osi) ;
00188
00189 int pushCbcOsiLogLevel(CoinParam *param) ;
00190 int pushCbcOsiInt(CoinParam *param) ;
00191 int pushCbcOsiDbl(CoinParam *param) ;
00192 int pushCbcOsiKwd(CoinParam *param) ;
00193 int pushCbcOsiHint(CoinParam *param) ;
00194 }
00195
00196
00197 #endif
00198