Cbc 2.10.5
Loading...
Searching...
No Matches
CbcParam.hpp
Go to the documentation of this file.
1/* $Id$ */
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"
11class ClpSimplex;
36
39
48
53
57
73
94
110
143
146
149
151
152class CbcParam {
153
154public:
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);
176
180 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
289private:
293
294private:
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_;
330 std::string stringValue_;
334};
335#endif /* CbcParam_H */
336
337/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
338*/
CbcParameterType
Parameter codes.
Definition CbcParam.hpp:37
@ CBC_PARAM_NOTUSED_CBCSTUFF
Definition CbcParam.hpp:145
@ CBC_PARAM_STR_PREPROCESS
Definition CbcParam.hpp:109
@ CLP_PARAM_STR_CROSSOVER
Definition CbcParam.hpp:91
@ CLP_PARAM_ACTION_PRIMALSIMPLEX
Definition CbcParam.hpp:117
@ CLP_PARAM_ACTION_DUALSIMPLEX
Definition CbcParam.hpp:116
@ CBC_PARAM_ACTION_MIPLIB
Definition CbcParam.hpp:140
@ CLP_PARAM_DBL_OBJSCALE
Definition CbcParam.hpp:46
@ CLP_PARAM_STR_CHOLESKY
Definition CbcParam.hpp:87
@ CBC_PARAM_NOTUSED_INVALID
Definition CbcParam.hpp:147
@ CLP_PARAM_DBL_TIMELIMIT
Definition CbcParam.hpp:43
@ CLP_PARAM_INT_LOGLEVEL
Definition CbcParam.hpp:58
@ CLP_PARAM_ACTION_NETWORK
Definition CbcParam.hpp:130
@ CLP_PARAM_STR_PFI
Definition CbcParam.hpp:92
@ CLP_PARAM_ACTION_DIRECTORY
Definition CbcParam.hpp:111
@ CBC_PARAM_DBL_INFEASIBILITYWEIGHT
Definition CbcParam.hpp:49
@ CLP_PARAM_STR_DUALPIVOT
Definition CbcParam.hpp:75
@ CLP_PARAM_STR_MESSAGES
Definition CbcParam.hpp:85
@ CBC_PARAM_STR_COSTSTRATEGY
Definition CbcParam.hpp:105
@ CLP_PARAM_STR_SPARSEFACTOR
Definition CbcParam.hpp:79
@ CLP_PARAM_ACTION_UNITTEST
Definition CbcParam.hpp:122
@ CLP_PARAM_INT_PRESOLVEPASS
Definition CbcParam.hpp:65
@ CBC_PARAM_STR_NODESTRATEGY
Definition CbcParam.hpp:95
@ CBC_PARAM_DBL_DJFIX
Definition CbcParam.hpp:54
@ CBC_PARAM_STR_ROUNDING
Definition CbcParam.hpp:102
@ CLP_PARAM_DBL_RHSSCALE
Definition CbcParam.hpp:47
@ CLP_PARAM_STR_DIRECTION
Definition CbcParam.hpp:74
@ CBC_PARAM_STR_CLIQUECUTS
Definition CbcParam.hpp:104
@ CLP_PARAM_INT_MAXFACTOR
Definition CbcParam.hpp:62
@ CLP_PARAM_STR_KEEPNAMES
Definition CbcParam.hpp:78
@ CBC_PARAM_STR_MIXEDCUTS
Definition CbcParam.hpp:107
@ CLP_PARAM_ACTION_ALLSLACK
Definition CbcParam.hpp:131
@ CLP_PARAM_STR_CRASH
Definition CbcParam.hpp:82
@ CLP_VERSION_NOTUSED_PRINTVERSION
Definition CbcParam.hpp:142
@ CLP_PARAM_ACTION_HELP
Definition CbcParam.hpp:128
@ CLP_PARAM_ACTION_EXPORT
Definition CbcParam.hpp:113
@ CLP_PARAM_INT_PRESOLVEOPTIONS
Definition CbcParam.hpp:70
@ CBC_PARAM_STR_BRANCHSTRATEGY
Definition CbcParam.hpp:96
@ CBC_PARAM_DBL_INCREMENT
Definition CbcParam.hpp:51
@ CBC_PARAM_DBL_ALLOWABLEGAP
Definition CbcParam.hpp:52
@ CLP_PARAM_ACTION_NETLIB_PRIMAL
Definition CbcParam.hpp:124
@ CLP_PARAM_ACTION_PLUSMINUS
Definition CbcParam.hpp:129
@ CLP_PARAM_DBL_PRIMALWEIGHT
Definition CbcParam.hpp:45
@ CBC_PARAM_DBL_TIGHTENFACTOR
Definition CbcParam.hpp:56
@ CLP_PARAM_INT_IDIOT
Definition CbcParam.hpp:66
@ CLP_PARAM_ACTION_CLEARCUTS
Definition CbcParam.hpp:141
@ CLP_PARAM_ACTION_IMPORT
Definition CbcParam.hpp:112
@ CLP_PARAM_INT_SPECIALOPTIONS
Definition CbcParam.hpp:72
@ CBC_PARAM_ACTION_BAB
Definition CbcParam.hpp:139
@ CLP_PARAM_INT_SLPVALUE
Definition CbcParam.hpp:69
@ CBC_PARAM_INT_MAXNODES
Definition CbcParam.hpp:60
@ CLP_PARAM_STR_PERTURBATION
Definition CbcParam.hpp:84
@ CLP_PARAM_INT_PRINTOPTIONS
Definition CbcParam.hpp:71
@ CLP_PARAM_INT_OUTPUTFORMAT
Definition CbcParam.hpp:68
@ CLP_PARAM_ACTION_STDIN
Definition CbcParam.hpp:121
@ CLP_PARAM_ACTION_BASISOUT
Definition CbcParam.hpp:137
@ CLP_PARAM_DBL_PRIMALTOLERANCE
Definition CbcParam.hpp:40
@ CLP_PARAM_ACTION_NETLIB_BARRIER
Definition CbcParam.hpp:134
@ CLP_PARAM_INT_MAXITERATION
Definition CbcParam.hpp:64
@ CLP_PARAM_DBL_DUALTOLERANCE
Definition CbcParam.hpp:41
@ CLP_PARAM_ACTION_TIGHTEN
Definition CbcParam.hpp:126
@ CLP_PARAM_ACTION_MINIMIZE
Definition CbcParam.hpp:119
@ CBC_PARAM_STR_TWOMIRCUTS
Definition CbcParam.hpp:108
@ CLP_PARAM_ACTION_REALLY_SCALE
Definition CbcParam.hpp:135
@ CLP_PARAM_ACTION_FAKEBOUND
Definition CbcParam.hpp:127
@ CLP_PARAM_NOTUSED_ALGORITHM
Definition CbcParam.hpp:93
@ CLP_PARAM_ACTION_MAXIMIZE
Definition CbcParam.hpp:118
@ CLP_PARAM_STR_PRIMALPIVOT
Definition CbcParam.hpp:80
@ CBC_PARAM_GENERALQUERY
Definition CbcParam.hpp:37
@ CBC_PARAM_DBL_GAPRATIO
Definition CbcParam.hpp:55
@ CBC_PARAM_NOTUSED_ADDCUTSSTRATEGY
Definition CbcParam.hpp:97
@ CBC_PARAM_STR_KNAPSACKCUTS
Definition CbcParam.hpp:100
@ CLP_PARAM_STR_PRESOLVE
Definition CbcParam.hpp:81
@ CBC_PARAM_STR_SOLVER
Definition CbcParam.hpp:103
@ CBC_PARAM_STR_GOMORYCUTS
Definition CbcParam.hpp:98
@ CBC_PARAM_STR_PROBINGCUTS
Definition CbcParam.hpp:99
@ CLP_PARAM_ACTION_SOLUTION
Definition CbcParam.hpp:125
@ CBC_PARAM_FULLGENERALQUERY
Definition CbcParam.hpp:38
@ CLP_PARAM_STR_GAMMA
Definition CbcParam.hpp:90
@ CLP_PARAM_STR_ERRORSALLOWED
Definition CbcParam.hpp:77
@ CLP_PARAM_ACTION_EXIT
Definition CbcParam.hpp:120
@ CLP_PARAM_ACTION_BASISIN
Definition CbcParam.hpp:136
@ CBC_PARAM_STR_FLOWCUTS
Definition CbcParam.hpp:106
@ CLP_PARAM_STR_BARRIERSCALE
Definition CbcParam.hpp:89
@ CLP_PARAM_DBL_DUALBOUND
Definition CbcParam.hpp:44
@ CLP_PARAM_ACTION_REVERSE
Definition CbcParam.hpp:132
@ CLP_PARAM_INT_SOLVERLOGLEVEL
Definition CbcParam.hpp:59
@ CLP_PARAM_ACTION_RESTORE
Definition CbcParam.hpp:114
@ CLP_PARAM_STR_AUTOSCALE
Definition CbcParam.hpp:86
@ CLP_PARAM_ACTION_SOLVECONTINUOUS
Definition CbcParam.hpp:138
@ CLP_PARAM_ACTION_SAVE
Definition CbcParam.hpp:115
@ CLP_PARAM_STR_BIASLU
Definition CbcParam.hpp:83
@ CBC_PARAM_NOTUSED_ODDHOLECUTS
Definition CbcParam.hpp:101
@ CBC_PARAM_DBL_INTEGERTOLERANCE
Definition CbcParam.hpp:50
@ CLP_PARAM_ACTION_BARRIER
Definition CbcParam.hpp:133
@ CBC_PARAM_NOTUSED_OSLSTUFF
Definition CbcParam.hpp:144
@ CLP_PARAM_ACTION_NETLIB_DUAL
Definition CbcParam.hpp:123
@ CLP_PARAM_INT_SPRINT
Definition CbcParam.hpp:67
@ CBC_PARAM_INT_STRONGBRANCHING
Definition CbcParam.hpp:61
@ CLP_PARAM_STR_KKT
Definition CbcParam.hpp:88
@ CBC_PARAM_DBL_CUTOFF
Definition CbcParam.hpp:42
@ CLP_PARAM_STR_SCALING
Definition CbcParam.hpp:76
@ CLP_PARAM_INT_PERTVALUE
Definition CbcParam.hpp:63
Simple Branch and bound class.
Definition CbcModel.hpp:100
Very simple class for setting parameters.
Definition CbcParam.hpp:152
unsigned int lengthMatch_
Definition CbcParam.hpp:310
std::string matchName() const
Returns name which could match.
void append(std::string keyWord)
Insert string (only valid for keywords)
int checkDoubleParameter(double value) const
Checks a double parameter (nonzero code if error)
int setIntParameter(ClpSimplex *model, int value) const
Sets a int parameter (nonzero code if error)
std::string shortHelp_
Short help.
Definition CbcParam.hpp:316
double doubleValue_
Double parameter - current value.
Definition CbcParam.hpp:328
void setStringValue(std::string value)
Sets string value.
Definition CbcParam.hpp:254
CbcParam(std::string name, std::string help, double lower, double upper, CbcParameterType type, bool display=true)
int setDoubleParameter(CbcModel &model, double value) const
Sets a double parameter (nonzero code if error)
void setIntValue(int value)
Sets int value.
Definition CbcParam.hpp:236
std::string stringValue_
String parameter - current value.
Definition CbcParam.hpp:330
int intValue() const
Definition CbcParam.hpp:240
std::string name_
Name.
Definition CbcParam.hpp:314
CbcParameterType action_
Action.
Definition CbcParam.hpp:320
void printLongHelp() const
Print Long help.
double lowerDoubleValue_
If double == okay.
Definition CbcParam.hpp:302
void setDoubleValue(double value)
Sets double value.
Definition CbcParam.hpp:245
int upperIntValue_
Definition CbcParam.hpp:306
int setIntParameter(OsiSolverInterface *model, int value) const
Sets a int parameter (nonzero code if error)
int currentKeyWord_
Current keyWord (if a keyword parameter)
Definition CbcParam.hpp:322
std::string currentOption() const
Returns current parameter option.
Definition CbcParam.hpp:226
~CbcParam()
Destructor.
int intParameter(ClpSimplex *model) const
Gets a int parameter.
void addHelp(std::string keyWord)
Adds one help line.
CbcParam(std::string name, std::string help, CbcParameterType type, int indexNumber=-1, bool display=true)
std::string name() const
Returns name.
Definition CbcParam.hpp:184
bool display_
Display on ?
Definition CbcParam.hpp:324
unsigned int lengthName_
Definition CbcParam.hpp:308
std::string longHelp_
Long help.
Definition CbcParam.hpp:318
void gutsOfConstructor()
gutsOfConstructor
void setLonghelp(const std::string help)
Set Long help.
Definition CbcParam.hpp:275
bool displayThis() const
whether to display
Definition CbcParam.hpp:270
void printString() const
Print action and string.
int setDoubleParameter(ClpSimplex *model, double value) const
Sets a double parameter (nonzero code if error)
int intParameter(OsiSolverInterface *model) const
Gets a int parameter.
std::string shortHelp() const
Returns short help.
Definition CbcParam.hpp:189
CbcParam(const CbcParam &)
Copy constructor.
int matches(std::string input) const
Returns 1 if matches minimum, 2 if matches less, 0 if not matched.
CbcParameterType type_
Definition CbcParam.hpp:300
double doubleParameter(CbcModel &model) const
Gets a double parameter.
int intParameter(CbcModel &model) const
Gets a int parameter.
std::string stringValue() const
Definition CbcParam.hpp:258
CbcParam & operator=(const CbcParam &rhs)
Assignment operator. This copies the data.
CbcParam()
Constructors.
int indexNumber() const
type for classification
Definition CbcParam.hpp:284
CbcParam(std::string name, std::string help, int lower, int upper, CbcParameterType type, bool display=true)
int indexNumber_
index number to use for display purposes
Definition CbcParam.hpp:332
double doubleParameter(ClpSimplex *model) const
Gets a double parameter.
CbcParameterType type() const
type
Definition CbcParam.hpp:265
CbcParam(std::string name, std::string help, std::string firstValue, CbcParameterType type, int defaultIndex=0, bool display=true)
void setCurrentOption(int value)
Sets current parameter option.
Definition CbcParam.hpp:231
double doubleValue() const
Definition CbcParam.hpp:249
int setDoubleParameter(OsiSolverInterface *model, double value) const
Sets a double parameter (nonzero code if error)
int parameterOption(std::string check) const
Returns parameter option which matches (-1 if none)
int intValue_
Integer parameter - current value.
Definition CbcParam.hpp:326
double upperDoubleValue_
Definition CbcParam.hpp:303
int lowerIntValue_
If int == okay.
Definition CbcParam.hpp:305
int setIntParameter(CbcModel &model, int value) const
Sets a int parameter (nonzero code if error)
void printOptions() const
Prints parameter options.
double doubleParameter(OsiSolverInterface *model) const
Gets a double parameter.
std::vector< std::string > definedKeyWords_
set of valid strings
Definition CbcParam.hpp:312