Cbc trunk
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 code is licensed under the terms of the Eclipse Public License (EPL).
00006 
00007   $Id$
00008 */
00009 /*
00010   This file is part of cbc-generic.
00011 */
00012 
00013 #ifndef CbcOsiParam_H
00014 #define CbcOsiParam_H
00015 
00016 /* \file CbcGenOsiParam.hpp
00017    \brief Declarations for parameters that act on a OsiSolverInterface object.
00018 */
00019 
00020 /*
00021   $Id: CbcGenOsiParam.hpp 1173 2009-06-04 09:44:10Z forrest $
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   Declare the utility functions.
00185 */
00186 
00187 namespace CbcOsiParamUtils {
00188 void addCbcOsiParams(int &numParams, CoinParamVec &paramVec,
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines