coin-Cgl
CglRedSplitParam.hpp
Go to the documentation of this file.
1 // Name: CglRedSplitParam.hpp
2 // Author: Francois Margot
3 // Tepper School of Business
4 // Carnegie Mellon University, Pittsburgh, PA 15213
5 // email: fmargot@andrew.cmu.edu
6 // Date: 11/24/06
7 //-----------------------------------------------------------------------------
8 // Copyright (C) 2006, Francois Margot and others. All Rights Reserved.
9 
10 #ifndef CglRedSplitParam_H
11 #define CglRedSplitParam_H
12 
13 #include "CglParam.hpp"
14 
15 
18 
57 
58 class CglRedSplitParam : public CglParam {
59 
60 public:
61 
68  virtual void setAway(const double value);
70  inline double getAway() const {return away_;}
71 
75  virtual void setLUB(const double value);
77  inline double getLUB() const {return LUB;}
78 
82  void setEPS_ELIM(const double value);
84  double getEPS_ELIM() const {return EPS_ELIM;}
85 
87  virtual void setEPS_RELAX_ABS(const double eps_ra);
89  inline double getEPS_RELAX_ABS() const {return EPS_RELAX_ABS;}
90 
92  virtual void setEPS_RELAX_REL(const double eps_rr);
94  inline double getEPS_RELAX_REL() const {return EPS_RELAX_REL;}
95 
96  // Set the maximum ratio between largest and smallest non zero
97  // coefficients in a cut. Default: 1e8.
98  virtual void setMAXDYN(double value);
100  inline double getMAXDYN() const {return MAXDYN_LUB;}
101 
102  // Set the maximum ratio between largest and smallest non zero
103  // coefficient in a cut involving structural variables with
104  // lower or upper bound in absolute value larger than LUB.
105  // Should logically be larger or equal to MAXDYN. Default: 1e13.
106  virtual void setMAXDYN_LUB(double value);
108  inline double getMAXDYN_LUB() const {return MAXDYN_LUB;}
109 
113  virtual void setEPS_COEFF_LUB(const double value);
115  inline double getEPS_COEFF_LUB() const {return EPS_COEFF_LUB;}
116 
119  virtual void setMINVIOL(double value);
121  inline double getMINVIOL() const {return MINVIOL;}
122 
124  virtual void setUSE_INTSLACKS(int value);
126  inline int getUSE_INTSLACKS() const {return USE_INTSLACKS;}
127 
129  virtual void setUSE_CG2(int value);
131  inline int getUSE_CG2() const {return USE_CG2;}
132 
135  virtual void setNormIsZero(const double value);
137  inline double getNormIsZero() const {return normIsZero;}
138 
141  virtual void setMinReduc(const double value);
143  inline double getMinReduc() const {return minReduc;}
144 
150  virtual void setMaxTab(const double value);
152  inline double getMaxTab() const {return maxTab_;}
154 
157  CglRedSplitParam(const double lub = 1000.0,
159  const double eps_elim = 1e-12,
160  const double eps_relax_abs = 1e-8,
161  const double eps_relax_rel = 0.0,
162  const double max_dyn = 1e8,
163  const double max_dyn_lub = 1e13,
164  const double eps_coeff_lub = 1e-13,
165  const double min_viol = 1e-7,
166  const int use_int_slacks = 0,
167  const int use_cg2 = 0,
168  const double norm_zero = 1e-5,
169  const double min_reduc = 0.05,
170  const double away = 0.05,
171  const double max_tab = 1e7);
172 
174  CglRedSplitParam(const CglParam &source,
175  const double lub = 1000.0,
176  const double eps_elim = 1e-12,
177  const double eps_relax_abs = 1e-8,
178  const double eps_relax_rel = 0.0,
179  const double max_dyn = 1e8,
180  const double max_dyn_lub = 1e13,
181  const double eps_coeff_lub = 1e-13,
182  const double min_viol = 1e-7,
183  const int use_int_slacks = 0,
184  const int use_cg2 = 0,
185  const double norm_zero = 1e-5,
186  const double min_reduc = 0.05,
187  const double away = 0.05,
188  const double max_tab = 1e7);
189 
191  CglRedSplitParam(const CglRedSplitParam &source);
192 
194  virtual CglRedSplitParam* clone() const;
195 
197  virtual CglRedSplitParam& operator=(const CglRedSplitParam &rhs);
198 
200  virtual ~CglRedSplitParam();
202 
203 protected:
204 
207 
210  double LUB;
211 
214  double EPS_ELIM;
215 
219 
224 
225  // Maximum ratio between largest and smallest non zero
226  // coefficients in a cut. Default: 1e8.
227  double MAXDYN;
228 
229  // Maximum ratio between largest and smallest non zero
230  // coefficients in a cut involving structural variables with
231  // lower or upper bound in absolute value larger than LUB.
232  // Should logically be larger or equal to MAXDYN. Default: 1e13.
233  double MAXDYN_LUB;
234 
238 
241  double MINVIOL;
242 
245 
248  int USE_CG2;
249 
252  double normIsZero;
253 
256  double minReduc;
257 
260  double away_;
261 
264  double maxTab_;
265 
267 };
268 
269 #endif