00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef CglGMIParam_H
00011 #define CglGMIParam_H
00012
00013 #include "CglParam.hpp"
00014
00015
00018
00051
00052 class CglGMIParam : public CglParam {
00053
00054 public:
00055
00057 enum CleaningProcedure{
00058
00059 CP_CGLLANDP1,
00060
00061 CP_CGLLANDP2,
00062
00063 CP_CGLREDSPLIT,
00064
00065 CP_INTEGRAL_CUTS,
00066
00067 CP_CGLLANDP1_INT,
00068
00069 CP_CGLLANDP1_SCALEMAX,
00070
00071 CP_CGLLANDP1_SCALERHS
00072 };
00073
00080 inline void setInfinity(double value) {setINFINIT(value);}
00081 inline double getInfinity() const {return INFINIT;}
00082
00084 inline void setEps(double value) {setEPS(value);}
00085 inline double getEps() const {return EPS;}
00086
00088 inline void setEpsCoeff(double value) {setEPS_COEFF(value);}
00089 inline double getEpsCoeff() const {return EPS_COEFF;}
00090
00092 inline void setMaxSupport(int value) {setMAX_SUPPORT(value);}
00093 inline int getMaxSupport() const {return MAX_SUPPORT;}
00095 inline void setMaxSupportAbs(int value) {setMAX_SUPPORT(value);}
00096 inline int getMaxSupportAbs() const {return MAX_SUPPORT;}
00097 inline int getMAX_SUPPORT_ABS() const {return MAX_SUPPORT;}
00098
00103 virtual void setAway(double value);
00105 inline double getAway() const {return AWAY;}
00107 inline void setAWAY(double value) {setAway(value);}
00108 inline double getAWAY() const {return AWAY;}
00109
00113 virtual void setEPS_ELIM(double value);
00115 inline double getEPS_ELIM() const {return EPS_ELIM;}
00117 inline void setEpsElim(double value) {setEPS_ELIM(value);}
00118 inline double getEpsElim() const {return EPS_ELIM;}
00119
00121 virtual void setEPS_RELAX_ABS(double value);
00123 inline double getEPS_RELAX_ABS() const {return EPS_RELAX_ABS;}
00125 inline void setEpsRelaxAbs(double value) {setEPS_RELAX_ABS(value);}
00126 inline double getEpsRelaxAbs() const {return EPS_RELAX_ABS;}
00127
00129 virtual void setEPS_RELAX_REL(double value);
00131 inline double getEPS_RELAX_REL() const {return EPS_RELAX_REL;}
00133 inline void setEpsRelaxRel(double value) {setEPS_RELAX_REL(value);}
00134 inline double getEpsRelaxRel() const {return EPS_RELAX_REL;}
00135
00136
00137
00138 virtual void setMAXDYN(double value);
00140 inline double getMAXDYN() const {return MAXDYN;}
00142 inline void setMaxDyn(double value) {setMAXDYN(value);}
00143 inline double getMaxDyn() const {return MAXDYN;}
00144
00147 virtual void setMINVIOL(double value);
00149 inline double getMINVIOL() const {return MINVIOL;}
00151 inline void setMinViol(double value) {setMINVIOL(value);}
00152 inline double getMinViol() const {return MINVIOL;}
00153
00158 virtual void setMAX_SUPPORT_REL(double value);
00160 inline double getMAX_SUPPORT_REL() const {return MAX_SUPPORT_REL;}
00162 inline void setMaxSupportRel(double value) {setMAX_SUPPORT_REL(value);}
00163 inline double getMaxSupportRel() const {return MAX_SUPPORT_REL;}
00164
00166 virtual void setUSE_INTSLACKS(bool value);
00168 inline bool getUSE_INTSLACKS() const {return USE_INTSLACKS;}
00170 inline void setUseIntSlacks(bool value) {setUSE_INTSLACKS(value);}
00171 inline int getUseIntSlacks() const {return USE_INTSLACKS;}
00172
00174 virtual void setCHECK_DUPLICATES(bool value);
00176 inline bool getCHECK_DUPLICATES() const {return CHECK_DUPLICATES;}
00178 inline void setCheckDuplicates(bool value) {setCHECK_DUPLICATES(value);}
00179 inline bool getCheckDuplicates() const {return CHECK_DUPLICATES;}
00180
00182 virtual void setCLEAN_PROC(CleaningProcedure value);
00184 inline CleaningProcedure getCLEAN_PROC() const {return CLEAN_PROC;}
00186 inline void setCleanProc(CleaningProcedure value) {setCLEAN_PROC(value);}
00187 inline CleaningProcedure getCleaningProcedure() const {return CLEAN_PROC;}
00188
00190 virtual void setINTEGRAL_SCALE_CONT(bool value);
00192 inline bool getINTEGRAL_SCALE_CONT() const {return INTEGRAL_SCALE_CONT;}
00194 inline void setIntegralScaleCont(bool value) {setINTEGRAL_SCALE_CONT(value);}
00195 inline bool getIntegralScaleCont() const {return INTEGRAL_SCALE_CONT;}
00196
00198 virtual void setENFORCE_SCALING(bool value);
00200 inline bool getENFORCE_SCALING() const {return ENFORCE_SCALING;}
00202 inline void setEnforceScaling(bool value) {setENFORCE_SCALING(value);}
00203 inline bool getEnforcescaling() const {return ENFORCE_SCALING;}
00204
00206
00209
00210 CglGMIParam(double eps = 1e-12,
00211 double away = 0.005,
00212 double eps_coeff = 1e-11,
00213 double eps_elim = 0,
00214 double eps_relax_abs = 1e-11,
00215 double eps_relax_rel = 1e-13,
00216 double max_dyn = 1e6,
00217 double min_viol = 1e-4,
00218 int max_supp_abs = 1000,
00219 double max_supp_rel = 0.1,
00220 CleaningProcedure clean_proc = CP_CGLLANDP1,
00221 bool use_int_slacks = false,
00222 bool check_duplicates = false,
00223 bool integral_scale_cont = false,
00224 bool enforce_scaling = true);
00225
00227 CglGMIParam(CglParam &source,
00228 double away = 0.005,
00229 double eps_elim = 1e-12,
00230 double eps_relax_abs = 1e-11,
00231 double eps_relax_rel = 1e-13,
00232 double max_dyn = 1e6,
00233 double min_viol = 1e-4,
00234 double max_supp_rel = 0.1,
00235 CleaningProcedure clean_proc = CP_CGLLANDP1,
00236 bool use_int_slacks = false,
00237 bool check_duplicates = false,
00238 bool integral_scale_cont = false,
00239 bool enforce_scaling = true);
00240
00242 CglGMIParam(const CglGMIParam &source);
00243
00245 virtual CglGMIParam* clone() const;
00246
00248 virtual CglGMIParam& operator=(const CglGMIParam &rhs);
00249
00251 virtual ~CglGMIParam();
00253
00254 protected:
00255
00258
00261 double AWAY;
00262
00265 double EPS_ELIM;
00266
00269 double EPS_RELAX_ABS;
00270
00274 double EPS_RELAX_REL;
00275
00278 double MAXDYN;
00279
00282 double MINVIOL;
00283
00286 double MAX_SUPPORT_REL;
00287
00289 CleaningProcedure CLEAN_PROC;
00290
00292 bool USE_INTSLACKS;
00293
00295 bool CHECK_DUPLICATES;
00296
00301 bool INTEGRAL_SCALE_CONT;
00302
00308 bool ENFORCE_SCALING;
00309
00311 };
00312
00313 #endif