/home/coin/SVN-release/CoinAll-1.1.0/Cbc/src/CbcGenOsiParam.hpp

Go to the documentation of this file.
00001 /*
00002   Copyright (C) 2007, Lou Hafer, International Business Machines Corporation
00003   and others.  All Rights Reserved.
00004 
00005   This file is part of cbc-generic.
00006 */
00007 
00008 #ifndef CbcOsiParam_H
00009 #define CbcOsiParam_H
00010 
00011 /* \file CbcGenOsiParam.hpp
00012    \brief Declarations for parameters that act on a OsiSolverInterface object.
00013 */
00014 
00015 /*
00016   $Id$
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   Declare the utility functions.
00174 */
00175 
00176 namespace CbcOsiParamUtils
00177 { void addCbcOsiParams(int &numParams, CoinParamVec &paramVec,
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

Generated on Sun Nov 14 14:06:31 2010 for Coin-All by  doxygen 1.4.7