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
00029 public:
00030
00033
00042 typedef enum
00043 { CBCOSI_FIRSTPARAM = CbcCbcParam::CBCCBC_LASTPARAM+1,
00044
00045 ALGORITHM, ALLSLACK, AUTOSCALE, BARRIER, BARRIERSCALE,
00046 BASISIN, BASISOUT, BIASLU, CHOLESKY, CRASH, CROSSOVER,
00047 DUALBOUND, DUALPIVOT, DUALSIMPLEX, DUALTOLERANCE, FAKEBOUND,
00048 GAMMA, IDIOT, KEEPNAMES, KKT, MAXITERATION, MAXHOTITS, NETLIB_BARRIER,
00049 NETLIB_DUAL, NETLIB_PRIMAL, NETWORK, OBJSCALE, PERTURBATION,
00050 PERTVALUE, PFI, PLUSMINUS, PRESOLVE, PRESOLVEOPTIONS, PRESOLVEPASS,
00051 PRIMALPIVOT, PRIMALSIMPLEX, PRIMALTOLERANCE, REALLY_SCALE,
00052 RESTORE, REVERSE, RHSSCALE, SAVE, SCALING, SLPVALUE, SOLVERLOGLEVEL,
00053 SPARSEFACTOR, SPECIALOPTIONS, SPRINT, TIGHTEN,
00054
00055 CBCOSI_LASTPARAM
00056
00057 } CbcOsiParamCode ;
00058
00060
00069 CbcOsiParam() ;
00070
00077 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00078 double lower, double upper, double dflt = 0.0,
00079 bool display = true) ;
00080
00085 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00086 int lower, int upper, int dflt = 0,
00087 bool display = true) ;
00088
00098 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00099 std::string firstValue, int dflt, bool display = true) ;
00100
00107 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00108 std::string dflt, bool display = true) ;
00109
00112 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00113 bool display = true) ;
00114
00117 CbcOsiParam(const CbcOsiParam &orig) ;
00118
00121 CbcOsiParam *clone() ;
00122
00125 CbcOsiParam &operator=(const CbcOsiParam &rhs) ;
00126
00129 ~CbcOsiParam() ;
00130
00132
00135
00138 inline CbcOsiParamCode paramCode() const { return (paramCode_) ; }
00139
00142 inline void setParamCode(CbcOsiParamCode code) { paramCode_ = code ; }
00143
00146 inline OsiSolverInterface *obj() const { return (obj_) ; }
00147
00150 inline void setObj(OsiSolverInterface *obj) { obj_ = obj ; }
00151
00153
00154
00155 private:
00156
00159
00161 CbcOsiParamCode paramCode_ ;
00162
00164 OsiSolverInterface *obj_ ;
00165
00167
00168 } ;
00169
00170
00171
00172
00173
00174
00175
00176 namespace CbcOsiParamUtils
00177 { void addCbcOsiParams(int &numParams, CoinParamVec ¶mVec,
00178 OsiSolverInterface *osi) ;
00179 void loadOsiParamObj(const CoinParamVec paramVec,
00180 CbcGenCtlBlk *ctlBlk) ;
00181 void setOsiSolverInterfaceDefaults(OsiSolverInterface *osi) ;
00182
00183 int pushCbcOsiLogLevel(CoinParam *param) ;
00184 int pushCbcOsiInt(CoinParam *param) ;
00185 int pushCbcOsiDbl(CoinParam *param) ;
00186 int pushCbcOsiKwd(CoinParam *param) ;
00187 int pushCbcOsiHint(CoinParam *param) ;
00188 }
00189
00190
00191 #endif