Cbc  2.10.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CbcParam.hpp
Go to the documentation of this file.
1 /* $Id: CbcParam.hpp 2467 2019-01-03 21:26:29Z unxusr $ */
2 // Copyright (C) 2002, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 #ifndef CbcParam_H
7 #define CbcParam_H
8 
9 #include "OsiSolverInterface.hpp"
10 #include "CbcModel.hpp"
11 class ClpSimplex;
36 
39 
48 
53 
57 
73 
94 
110 
143 
146 
148 };
149 
151 
152 class CbcParam {
153 
154 public:
157  CbcParam();
159  CbcParam(std::string name, std::string help,
160  double lower, double upper, CbcParameterType type, bool display = true);
161  CbcParam(std::string name, std::string help,
162  int lower, int upper, CbcParameterType type, bool display = true);
163  // Other strings will be added by insert
164  CbcParam(std::string name, std::string help, std::string firstValue,
165  CbcParameterType type, int defaultIndex = 0, bool display = true);
166  // Action
167  CbcParam(std::string name, std::string help,
168  CbcParameterType type, int indexNumber = -1, bool display = true);
170  CbcParam(const CbcParam &);
172  CbcParam &operator=(const CbcParam &rhs);
174  ~CbcParam();
176 
179  void append(std::string keyWord);
182  void addHelp(std::string keyWord);
184  inline std::string name() const
185  {
186  return name_;
187  };
189  inline std::string shortHelp() const
190  {
191  return shortHelp_;
192  };
194  int setDoubleParameter(CbcModel &model, double value) const;
196  double doubleParameter(CbcModel &model) const;
198  int setIntParameter(CbcModel &model, int value) const;
200  int intParameter(CbcModel &model) const;
202  int setDoubleParameter(ClpSimplex *model, double value) const;
204  double doubleParameter(ClpSimplex *model) const;
206  int setIntParameter(ClpSimplex *model, int value) const;
208  int intParameter(ClpSimplex *model) const;
210  int setDoubleParameter(OsiSolverInterface *model, double value) const;
212  double doubleParameter(OsiSolverInterface *model) const;
214  int setIntParameter(OsiSolverInterface *model, int value) const;
216  int intParameter(OsiSolverInterface *model) const;
218  int checkDoubleParameter(double value) const;
220  std::string matchName() const;
222  int parameterOption(std::string check) const;
224  void printOptions() const;
226  inline std::string currentOption() const
227  {
229  }
231  inline void setCurrentOption(int value)
232  {
233  currentKeyWord_ = value;
234  }
236  inline void setIntValue(int value)
237  {
238  intValue_ = value;
239  }
240  inline int intValue() const
241  {
242  return intValue_;
243  }
245  inline void setDoubleValue(double value)
246  {
247  doubleValue_ = value;
248  }
249  inline double doubleValue() const
250  {
251  return doubleValue_;
252  }
254  inline void setStringValue(std::string value)
255  {
256  stringValue_ = value;
257  }
258  inline std::string stringValue() const
259  {
260  return stringValue_;
261  }
263  int matches(std::string input) const;
265  inline CbcParameterType type() const
266  {
267  return type_;
268  }
270  inline bool displayThis() const
271  {
272  return display_;
273  }
275  inline void setLonghelp(const std::string help)
276  {
277  longHelp_ = help;
278  }
280  void printLongHelp() const;
282  void printString() const;
284  inline int indexNumber() const
285  {
286  return indexNumber_;
287  }
288 
289 private:
291  void gutsOfConstructor();
293 private:
299  // Type see CbcParameterType
307  // Length of name
308  unsigned int lengthName_;
309  // Minimum match
310  unsigned int lengthMatch_;
312  std::vector< std::string > definedKeyWords_;
314  std::string name_;
316  std::string shortHelp_;
318  std::string longHelp_;
324  bool display_;
328  double doubleValue_;
330  std::string stringValue_;
334 };
335 #endif /* CbcParam_H */
336 
337 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
338 */
std::string shortHelp() const
Returns short help.
Definition: CbcParam.hpp:189
std::string stringValue() const
Definition: CbcParam.hpp:258
std::string matchName() const
Returns name which could match.
void setStringValue(std::string value)
Sets string value.
Definition: CbcParam.hpp:254
double doubleValue_
Double parameter - current value.
Definition: CbcParam.hpp:328
CbcParameterType type_
Definition: CbcParam.hpp:300
~CbcParam()
Destructor.
int parameterOption(std::string check) const
Returns parameter option which matches (-1 if none)
void setLonghelp(const std::string help)
Set Long help.
Definition: CbcParam.hpp:275
int matches(std::string input) const
Returns 1 if matches minimum, 2 if matches less, 0 if not matched.
bool display_
Display on ?
Definition: CbcParam.hpp:324
void append(std::string keyWord)
Insert string (only valid for keywords)
CbcParam & operator=(const CbcParam &rhs)
Assignment operator. This copies the data.
CbcParameterType type() const
type
Definition: CbcParam.hpp:265
std::string longHelp_
Long help.
Definition: CbcParam.hpp:318
Abstract Base Class for describing an interface to a solver.
CbcParam()
Constructors.
void printOptions() const
Prints parameter options.
int currentKeyWord_
Current keyWord (if a keyword parameter)
Definition: CbcParam.hpp:322
void setIntValue(int value)
Sets int value.
Definition: CbcParam.hpp:236
std::string name() const
Returns name.
Definition: CbcParam.hpp:184
int setIntParameter(CbcModel &model, int value) const
Sets a int parameter (nonzero code if error)
double lowerDoubleValue_
If double == okay.
Definition: CbcParam.hpp:302
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
CbcParameterType
Parameter codes.
Definition: CbcParam.hpp:35
std::string stringValue_
String parameter - current value.
Definition: CbcParam.hpp:330
int intValue_
Integer parameter - current value.
Definition: CbcParam.hpp:326
void addHelp(std::string keyWord)
Adds one help line.
unsigned int lengthName_
Definition: CbcParam.hpp:308
int intParameter(CbcModel &model) const
Gets a int parameter.
double doubleParameter(CbcModel &model) const
Gets a double parameter.
Very simple class for setting parameters.
Definition: CbcParam.hpp:152
int intValue() const
Definition: CbcParam.hpp:240
std::string name_
Name.
Definition: CbcParam.hpp:314
CbcParameterType action_
Action.
Definition: CbcParam.hpp:320
std::string shortHelp_
Short help.
Definition: CbcParam.hpp:316
int upperIntValue_
Definition: CbcParam.hpp:306
void printString() const
Print action and string.
int lowerIntValue_
If int == okay.
Definition: CbcParam.hpp:305
double upperDoubleValue_
Definition: CbcParam.hpp:303
std::vector< std::string > definedKeyWords_
set of valid strings
Definition: CbcParam.hpp:312
std::string currentOption() const
Returns current parameter option.
Definition: CbcParam.hpp:226
double doubleValue() const
Definition: CbcParam.hpp:249
int indexNumber() const
type for classification
Definition: CbcParam.hpp:284
int indexNumber_
index number to use for display purposes
Definition: CbcParam.hpp:332
void printLongHelp() const
Print Long help.
void gutsOfConstructor()
gutsOfConstructor
Simple Branch and bound class.
Definition: CbcModel.hpp:100
int checkDoubleParameter(double value) const
Checks a double parameter (nonzero code if error)
void setDoubleValue(double value)
Sets double value.
Definition: CbcParam.hpp:245
unsigned int lengthMatch_
Definition: CbcParam.hpp:310
void setCurrentOption(int value)
Sets current parameter option.
Definition: CbcParam.hpp:231
bool displayThis() const
whether to display
Definition: CbcParam.hpp:270
int setDoubleParameter(CbcModel &model, double value) const
Sets a double parameter (nonzero code if error)