00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef CbcOsiParam_H
00014 #define CbcOsiParam_H
00015
00016
00017
00018
00019
00020
00021
00022
00023
00031 class CbcOsiParam : public CoinParam {
00032
00033 public:
00034
00037
00046 typedef enum { CBCOSI_FIRSTPARAM = CbcCbcParam::CBCCBC_LASTPARAM + 1,
00047
00048 ALGORITHM, ALLSLACK, AUTOSCALE, BARRIER, BARRIERSCALE,
00049 BASISIN, BASISOUT, BIASLU, CHOLESKY, CRASH, CROSSOVER,
00050 DUALBOUND, DUALPIVOT, DUALSIMPLEX, DUALTOLERANCE, FAKEBOUND,
00051 GAMMA, IDIOT, KEEPNAMES, KKT, MAXITERATION, MAXHOTITS, NETLIB_BARRIER,
00052 NETLIB_DUAL, NETLIB_PRIMAL, NETWORK, OBJSCALE, PERTURBATION,
00053 PERTVALUE, PFI, PLUSMINUS, PRESOLVE, PRESOLVEOPTIONS, PRESOLVEPASS,
00054 PRIMALPIVOT, PRIMALSIMPLEX, PRIMALTOLERANCE, REALLY_SCALE,
00055 RESTORE, REVERSE, RHSSCALE, SAVE, SCALING, SLPVALUE, SOLVERLOGLEVEL,
00056 SPARSEFACTOR, SPECIALOPTIONS, SPRINT, TIGHTEN,
00057
00058 CBCOSI_LASTPARAM
00059
00060 } CbcOsiParamCode ;
00061
00063
00072 CbcOsiParam() ;
00073
00080 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00081 double lower, double upper, double dflt = 0.0,
00082 bool display = true) ;
00083
00088 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00089 int lower, int upper, int dflt = 0,
00090 bool display = true) ;
00091
00101 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00102 std::string firstValue, int dflt, bool display = true) ;
00103
00110 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00111 std::string dflt, bool display = true) ;
00112
00115 CbcOsiParam(CbcOsiParamCode code, std::string name, std::string help,
00116 bool display = true) ;
00117
00120 CbcOsiParam(const CbcOsiParam &orig) ;
00121
00124 CbcOsiParam *clone() ;
00125
00128 CbcOsiParam &operator=(const CbcOsiParam &rhs) ;
00129
00132 ~CbcOsiParam() ;
00133
00135
00138
00141 inline CbcOsiParamCode paramCode() const {
00142 return (paramCode_) ;
00143 }
00144
00147 inline void setParamCode(CbcOsiParamCode code) {
00148 paramCode_ = code ;
00149 }
00150
00153 inline OsiSolverInterface *obj() const {
00154 return (obj_) ;
00155 }
00156
00159 inline void setObj(OsiSolverInterface *obj) {
00160 obj_ = obj ;
00161 }
00162
00164
00165
00166 private:
00167
00170
00172 CbcOsiParamCode paramCode_ ;
00173
00175 OsiSolverInterface *obj_ ;
00176
00178
00179 } ;
00180
00181
00182
00183
00184
00185
00186
00187 namespace CbcOsiParamUtils {
00188 void addCbcOsiParams(int &numParams, CoinParamVec ¶mVec,
00189 OsiSolverInterface *osi) ;
00190 void loadOsiParamObj(const CoinParamVec paramVec,
00191 CbcGenCtlBlk *ctlBlk) ;
00192 void setOsiSolverInterfaceDefaults(OsiSolverInterface *osi) ;
00193
00194 int pushCbcOsiLogLevel(CoinParam *param) ;
00195 int pushCbcOsiInt(CoinParam *param) ;
00196 int pushCbcOsiDbl(CoinParam *param) ;
00197 int pushCbcOsiKwd(CoinParam *param) ;
00198 int pushCbcOsiHint(CoinParam *param) ;
00199 }
00200
00201
00202 #endif
00203