Clp 1.17.10
Loading...
Searching...
No Matches
CbcOrClpParam.hpp
Go to the documentation of this file.
1
2/* $Id$ */
3// Copyright (C) 2002, International Business Machines
4// Corporation and others. All Rights Reserved.
5// This code is licensed under the terms of the Eclipse Public License (EPL).
6
7#ifdef USE_CBCCONFIG
8#include "CbcConfig.h"
9#else
10#include "ClpConfig.h"
11#endif
12
13#ifndef CbcOrClpParam_H
14#define CbcOrClpParam_H
28class CbcModel;
29class ClpSimplex;
47
48enum CbcOrClpParameterType
49
50{
51 CBC_PARAM_GENERALQUERY = -100,
52 CBC_PARAM_FULLGENERALQUERY,
53
54 CLP_PARAM_DBL_PRIMALTOLERANCE = 1,
55 CLP_PARAM_DBL_DUALTOLERANCE,
56 CLP_PARAM_DBL_TIMELIMIT,
57 CLP_PARAM_DBL_DUALBOUND,
58 CLP_PARAM_DBL_PRIMALWEIGHT,
59 CLP_PARAM_DBL_OBJSCALE,
60 CLP_PARAM_DBL_RHSSCALE,
61 CLP_PARAM_DBL_ZEROTOLERANCE,
62 CLP_PARAM_DBL_PSI,
63
64 CBC_PARAM_DBL_INFEASIBILITYWEIGHT = 51,
65 CBC_PARAM_DBL_CUTOFF,
66 CBC_PARAM_DBL_INTEGERTOLERANCE,
67 CBC_PARAM_DBL_INCREMENT,
68 CBC_PARAM_DBL_ALLOWABLEGAP,
69 CBC_PARAM_DBL_TIMELIMIT_BAB,
70 CBC_PARAM_DBL_GAPRATIO,
71
72 CBC_PARAM_DBL_DJFIX = 81,
73 CBC_PARAM_DBL_TIGHTENFACTOR,
74 CLP_PARAM_DBL_PRESOLVETOLERANCE,
75 CLP_PARAM_DBL_OBJSCALE2,
76 CBC_PARAM_DBL_FAKEINCREMENT,
77 CBC_PARAM_DBL_FAKECUTOFF,
78 CBC_PARAM_DBL_ARTIFICIALCOST,
79 CBC_PARAM_DBL_DEXTRA3,
80 CBC_PARAM_DBL_SMALLBAB,
81 CBC_PARAM_DBL_DEXTRA4,
82 CBC_PARAM_DBL_DEXTRA5,
83
84 CLP_PARAM_INT_SOLVERLOGLEVEL = 101,
85#ifndef COIN_HAS_CBC
86 CLP_PARAM_INT_LOGLEVEL = 101,
87#endif
88 CLP_PARAM_INT_MAXFACTOR,
89 CLP_PARAM_INT_PERTVALUE,
90 CLP_PARAM_INT_MAXITERATION,
91 CLP_PARAM_INT_PRESOLVEPASS,
92 CLP_PARAM_INT_IDIOT,
93 CLP_PARAM_INT_SPRINT,
94 CLP_PARAM_INT_OUTPUTFORMAT,
95 CLP_PARAM_INT_SLPVALUE,
96 CLP_PARAM_INT_PRESOLVEOPTIONS,
97 CLP_PARAM_INT_PRINTOPTIONS,
98 CLP_PARAM_INT_SPECIALOPTIONS,
99 CLP_PARAM_INT_SUBSTITUTION,
100 CLP_PARAM_INT_DUALIZE,
101 CLP_PARAM_INT_VERBOSE,
102 CLP_PARAM_INT_CPP,
103 CLP_PARAM_INT_PROCESSTUNE,
104 CLP_PARAM_INT_USESOLUTION,
105 CLP_PARAM_INT_RANDOMSEED,
106 CLP_PARAM_INT_MORESPECIALOPTIONS,
107 CLP_PARAM_INT_DECOMPOSE_BLOCKS,
108 CLP_PARAM_INT_VECTOR_MODE,
109
110 CBC_PARAM_INT_STRONGBRANCHING = 151,
111 CBC_PARAM_INT_CUTDEPTH,
112 CBC_PARAM_INT_MAXNODES,
113 CBC_PARAM_INT_NUMBERBEFORE,
114 CBC_PARAM_INT_NUMBERANALYZE,
115 CBC_PARAM_INT_MIPOPTIONS,
116 CBC_PARAM_INT_MOREMIPOPTIONS,
117 CBC_PARAM_INT_MAXHOTITS,
118 CBC_PARAM_INT_FPUMPITS,
119 CBC_PARAM_INT_MAXSOLS,
120 CBC_PARAM_INT_FPUMPTUNE,
121 CBC_PARAM_INT_TESTOSI,
122 CBC_PARAM_INT_EXTRA1,
123 CBC_PARAM_INT_EXTRA2,
124 CBC_PARAM_INT_EXTRA3,
125 CBC_PARAM_INT_EXTRA4,
126 CBC_PARAM_INT_DEPTHMINIBAB,
127 CBC_PARAM_INT_CUTPASSINTREE,
128 CBC_PARAM_INT_THREADS,
129 CBC_PARAM_INT_CUTPASS,
130 CBC_PARAM_INT_VUBTRY,
131 CBC_PARAM_INT_DENSE,
132 CBC_PARAM_INT_EXPERIMENT,
133 CBC_PARAM_INT_DIVEOPT,
134 CBC_PARAM_INT_DIVEOPTSOLVES,
135 CBC_PARAM_INT_STRATEGY,
136 CBC_PARAM_INT_SMALLFACT,
137 CBC_PARAM_INT_HOPTIONS,
138 CBC_PARAM_INT_CUTLENGTH,
139 CBC_PARAM_INT_FPUMPTUNE2,
140#ifdef COIN_HAS_CBC
141 CLP_PARAM_INT_LOGLEVEL,
142#endif
143 CBC_PARAM_INT_MAXSAVEDSOLS,
144 CBC_PARAM_INT_RANDOMSEED,
145 CBC_PARAM_INT_MULTIPLEROOTS,
146 CBC_PARAM_INT_STRONG_STRATEGY,
147 CBC_PARAM_INT_EXTRA_VARIABLES,
148 CBC_PARAM_INT_MAX_SLOW_CUTS,
149 CBC_PARAM_INT_MOREMOREMIPOPTIONS,
150
151 CLP_PARAM_STR_DIRECTION = 201,
152 CLP_PARAM_STR_DUALPIVOT,
153 CLP_PARAM_STR_SCALING,
154 CLP_PARAM_STR_ERRORSALLOWED,
155 CLP_PARAM_STR_KEEPNAMES,
156 CLP_PARAM_STR_SPARSEFACTOR,
157 CLP_PARAM_STR_PRIMALPIVOT,
158 CLP_PARAM_STR_PRESOLVE,
159 CLP_PARAM_STR_CRASH,
160 CLP_PARAM_STR_BIASLU,
161 CLP_PARAM_STR_PERTURBATION,
162 CLP_PARAM_STR_MESSAGES,
163 CLP_PARAM_STR_AUTOSCALE,
164 CLP_PARAM_STR_CHOLESKY,
165 CLP_PARAM_STR_KKT,
166 CLP_PARAM_STR_BARRIERSCALE,
167 CLP_PARAM_STR_GAMMA,
168 CLP_PARAM_STR_CROSSOVER,
169 CLP_PARAM_STR_PFI,
170 CLP_PARAM_STR_INTPRINT,
171 CLP_PARAM_STR_VECTOR,
172 CLP_PARAM_STR_FACTORIZATION,
173 CLP_PARAM_STR_ALLCOMMANDS,
174 CLP_PARAM_STR_TIME_MODE,
175 CLP_PARAM_STR_ABCWANTED,
176 CLP_PARAM_STR_BUFFER_MODE,
177
178 CBC_PARAM_STR_NODESTRATEGY = 301,
179 CBC_PARAM_STR_BRANCHSTRATEGY,
180 CBC_PARAM_STR_CUTSSTRATEGY,
181 CBC_PARAM_STR_HEURISTICSTRATEGY,
182 CBC_PARAM_STR_GOMORYCUTS,
183 CBC_PARAM_STR_PROBINGCUTS,
184 CBC_PARAM_STR_KNAPSACKCUTS,
185 CBC_PARAM_STR_REDSPLITCUTS,
186 CBC_PARAM_STR_ROUNDING,
187 CBC_PARAM_STR_SOLVER,
188 CBC_PARAM_STR_CLIQUECUTS,
189 CBC_PARAM_STR_COSTSTRATEGY,
190 CBC_PARAM_STR_FLOWCUTS,
191 CBC_PARAM_STR_MIXEDCUTS,
192 CBC_PARAM_STR_TWOMIRCUTS,
193 CBC_PARAM_STR_PREPROCESS,
194 CBC_PARAM_STR_FPUMP,
195 CBC_PARAM_STR_GREEDY,
196 CBC_PARAM_STR_COMBINE,
197 CBC_PARAM_STR_PROXIMITY,
198 CBC_PARAM_STR_LOCALTREE,
199 CBC_PARAM_STR_SOS,
200 CBC_PARAM_STR_LANDPCUTS,
201 CBC_PARAM_STR_RINS,
202 CBC_PARAM_STR_RESIDCUTS,
203 CBC_PARAM_STR_RENS,
204 CBC_PARAM_STR_DIVINGS,
205 CBC_PARAM_STR_DIVINGC,
206 CBC_PARAM_STR_DIVINGF,
207 CBC_PARAM_STR_DIVINGG,
208 CBC_PARAM_STR_DIVINGL,
209 CBC_PARAM_STR_DIVINGP,
210 CBC_PARAM_STR_DIVINGV,
211 CBC_PARAM_STR_DINS,
212 CBC_PARAM_STR_PIVOTANDFIX,
213 CBC_PARAM_STR_RANDROUND,
214 CBC_PARAM_STR_NAIVE,
215 CBC_PARAM_STR_ZEROHALFCUTS,
216 CBC_PARAM_STR_CPX,
217 CBC_PARAM_STR_CROSSOVER2,
218 CBC_PARAM_STR_PIVOTANDCOMPLEMENT,
219 CBC_PARAM_STR_VND,
220 CBC_PARAM_STR_LAGOMORYCUTS,
221 CBC_PARAM_STR_LATWOMIRCUTS,
222 CBC_PARAM_STR_REDSPLIT2CUTS,
223 CBC_PARAM_STR_GMICUTS,
224 CBC_PARAM_STR_CUTOFF_CONSTRAINT,
225 CBC_PARAM_STR_DW,
226 CBC_PARAM_STR_ORBITAL,
227 CBC_PARAM_STR_PREPROCNAMES,
228 CBC_PARAM_STR_SOSPRIORITIZE,
229
230 CLP_PARAM_ACTION_DIRECTORY = 401,
231 CLP_PARAM_ACTION_DIRSAMPLE,
232 CLP_PARAM_ACTION_DIRNETLIB,
233 CBC_PARAM_ACTION_DIRMIPLIB,
234 CLP_PARAM_ACTION_IMPORT,
235 CLP_PARAM_ACTION_EXPORT,
236 CLP_PARAM_ACTION_RESTORE,
237 CLP_PARAM_ACTION_SAVE,
238 CLP_PARAM_ACTION_DUALSIMPLEX,
239 CLP_PARAM_ACTION_PRIMALSIMPLEX,
240 CLP_PARAM_ACTION_EITHERSIMPLEX,
241 CLP_PARAM_ACTION_MAXIMIZE,
242 CLP_PARAM_ACTION_MINIMIZE,
243 CLP_PARAM_ACTION_EXIT,
244 CLP_PARAM_ACTION_STDIN,
245 CLP_PARAM_ACTION_UNITTEST,
246 CLP_PARAM_ACTION_NETLIB_EITHER,
247 CLP_PARAM_ACTION_NETLIB_DUAL,
248 CLP_PARAM_ACTION_NETLIB_PRIMAL,
249 CLP_PARAM_ACTION_SOLUTION,
250 CLP_PARAM_ACTION_SAVESOL,
251 CLP_PARAM_ACTION_TIGHTEN,
252 CLP_PARAM_ACTION_FAKEBOUND,
253 CLP_PARAM_ACTION_HELP,
254 CLP_PARAM_ACTION_PLUSMINUS,
255 CLP_PARAM_ACTION_NETWORK,
256 CLP_PARAM_ACTION_ALLSLACK,
257 CLP_PARAM_ACTION_REVERSE,
258 CLP_PARAM_ACTION_BARRIER,
259 CLP_PARAM_ACTION_NETLIB_BARRIER,
260 CLP_PARAM_ACTION_NETLIB_TUNE,
261 CLP_PARAM_ACTION_REALLY_SCALE,
262 CLP_PARAM_ACTION_BASISIN,
263 CLP_PARAM_ACTION_BASISOUT,
264 CLP_PARAM_ACTION_SOLVECONTINUOUS,
265 CLP_PARAM_ACTION_CLEARCUTS,
266 CLP_PARAM_ACTION_VERSION,
267 CLP_PARAM_ACTION_STATISTICS,
268 CLP_PARAM_ACTION_DEBUG,
269 CLP_PARAM_ACTION_DUMMY,
270 CLP_PARAM_ACTION_PRINTMASK,
271 CLP_PARAM_ACTION_OUTDUPROWS,
272 CLP_PARAM_ACTION_USERCLP,
273 CLP_PARAM_ACTION_MODELIN,
274 CLP_PARAM_ACTION_CSVSTATISTICS,
275 CLP_PARAM_ACTION_STOREDFILE,
276 CLP_PARAM_ACTION_ENVIRONMENT,
277 CLP_PARAM_ACTION_PARAMETRICS,
278 CLP_PARAM_ACTION_GMPL_SOLUTION,
279 CLP_PARAM_ACTION_RESTORESOL,
280 CLP_PARAM_ACTION_GUESS,
281
282 CBC_PARAM_ACTION_BAB = 501,
283 CBC_PARAM_ACTION_MIPLIB,
284 CBC_PARAM_ACTION_STRENGTHEN,
285 CBC_PARAM_ACTION_PRIORITYIN,
286 CBC_PARAM_ACTION_MIPSTART,
287 CBC_PARAM_ACTION_USERCBC,
288 CBC_PARAM_ACTION_DOHEURISTIC,
289 CLP_PARAM_ACTION_NEXTBESTSOLUTION,
290
291 CBC_PARAM_NOTUSED_OSLSTUFF = 601,
292 CBC_PARAM_NOTUSED_CBCSTUFF,
293
294 CBC_PARAM_NOTUSED_INVALID = 1000
295};
296#include <vector>
297#include <string>
298
300
301class CbcOrClpParam {
302public:
305
307 CbcOrClpParam(std::string name, std::string help,
308 double lower, double upper, CbcOrClpParameterType type, int display = 2);
309 CbcOrClpParam(std::string name, std::string help,
310 int lower, int upper, CbcOrClpParameterType type, int display = 2);
311 // Other strings will be added by insert
312 CbcOrClpParam(std::string name, std::string help, std::string firstValue,
313 CbcOrClpParameterType type, int whereUsed = 7, int display = 2);
314 // Action
315 CbcOrClpParam(std::string name, std::string help,
316 CbcOrClpParameterType type, int whereUsed = 7, int display = 2);
324
327
328 void append(std::string keyWord);
330 void addHelp(std::string keyWord);
332 inline std::string name() const
333 {
334 return name_;
335 }
336
337 inline std::string shortHelp() const
338 {
339 return shortHelp_;
340 }
341
342 inline std::string longHelp() const
343 {
344 return longHelp_;
345 }
346
347 inline const std::vector<std::string>& definedKeywords() const
348 {
349 return definedKeyWords_;
350 }
351
352 inline double lowerDoubleValue() const
353 {
354 return lowerDoubleValue_;
355 }
356
357 inline double upperDoubleValue() const
358 {
359 return upperDoubleValue_;
360 }
361
362 inline int lowerIntValue() const
363 {
364 return lowerIntValue_;
365 }
366
367 inline int upperIntValue() const
368 {
369 return upperIntValue_;
370 }
371
372 int setDoubleParameter(CbcModel &model, double value);
374 const char *setDoubleParameterWithMessage(CbcModel &model, double value, int &returnCode);
376 double doubleParameter(CbcModel &model) const;
378 int setIntParameter(CbcModel &model, int value);
380 const char *setIntParameterWithMessage(CbcModel &model, int value, int &returnCode);
382 int intParameter(CbcModel &model) const;
384 int setDoubleParameter(ClpSimplex *model, double value);
386 double doubleParameter(ClpSimplex *model) const;
388 const char *setDoubleParameterWithMessage(ClpSimplex *model, double value, int &returnCode);
390 int setIntParameter(ClpSimplex *model, int value);
392 const char *setIntParameterWithMessage(ClpSimplex *model, int value, int &returnCode);
394 int intParameter(ClpSimplex *model) const;
396 int setDoubleParameter(OsiSolverInterface *model, double value);
398 const char *setDoubleParameterWithMessage(OsiSolverInterface *model, double value, int &returnCode);
402 int setIntParameter(OsiSolverInterface *model, int value);
404 const char *setIntParameterWithMessage(OsiSolverInterface *model, int value, int &returnCode);
408 int checkDoubleParameter(double value) const;
410 std::string matchName() const;
412 int lengthMatchName() const;
414 int parameterOption(std::string check) const;
416 void printOptions() const;
418 inline std::string currentOption() const
419 {
421 }
422
423 void setCurrentOption(int value, bool printIt = false);
425 const char *setCurrentOptionWithMessage(int value);
427 void setCurrentOption(const std::string value);
429 const char *setCurrentOptionWithMessage(const std::string value);
436 int currentOptionAsInteger(int &fakeInteger) const;
438 void setIntValue(int value);
440 const char *setIntValueWithMessage(int value);
441 inline int intValue() const
442 {
443 return intValue_;
444 }
445
446 void setDoubleValue(double value);
448 const char *setDoubleValueWithMessage(double value);
449 inline double doubleValue() const
450 {
451 return doubleValue_;
452 }
453
454 void setStringValue(std::string value);
455 inline std::string stringValue() const
456 {
457 return stringValue_;
458 }
459
460 int matches(std::string input) const;
462 inline CbcOrClpParameterType type() const
463 {
464 return type_;
465 }
466
467 inline int displayThis() const
468 {
469 return display_;
470 }
471
472 inline void setLonghelp(const std::string help)
473 {
474 longHelp_ = help;
475 }
476
477 void printLongHelp() const;
479 void printString() const;
485 inline int whereUsed() const
486 {
487 return whereUsed_;
488 }
489
490 inline int fakeKeyWord() const
491 {
492 return fakeKeyWord_;
493 }
494
495 inline void setFakeKeyWord(int value, int fakeValue)
496 {
497 fakeKeyWord_ = value;
498 fakeValue_ = fakeValue;
499 }
500
501 void setFakeKeyWord(int fakeValue);
502
503private:
507
508private:
513 // Type see CbcOrClpParameterType
514 CbcOrClpParameterType type_;
521 // Length of name
522 unsigned int lengthName_;
523 // Minimum match
524 unsigned int lengthMatch_;
526 std::vector< std::string > definedKeyWords_;
528 std::string name_;
530 std::string shortHelp_;
532 std::string longHelp_;
534 CbcOrClpParameterType action_;
544 std::string stringValue_;
559};
561std::string CoinReadNextField();
562
563std::string CoinReadGetCommand(int argc, const char *argv[]);
564std::string CoinReadGetString(int argc, const char *argv[]);
565// valid 0 - okay, 1 bad, 2 not there
566int CoinReadGetIntField(int argc, const char *argv[], int *valid);
567double CoinReadGetDoubleField(int argc, const char *argv[], int *valid);
568void CoinReadPrintit(const char *input);
569void setCbcOrClpPrinting(bool yesNo);
570#define CBCMAXPARAMETERS 250
571/*
572 Subroutine to establish the cbc parameter array. See the description of
573 class CbcOrClpParam for details. Pulled from C..Main() for clarity.
574*/
575void establishParams(std::vector< CbcOrClpParam > &params);
576// Given a parameter type - returns its number in list
577int whichParam(const CbcOrClpParameterType &name,
578 const std::vector< CbcOrClpParam > &parameters);
579// Dump/restore a solution to file
580void saveSolution(const ClpSimplex *lpSolver, std::string fileName);
581void restoreSolution(ClpSimplex *lpSolver, std::string fileName, int mode);
582#endif /* CbcOrClpParam_H */
583
584/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
585*/
CbcOrClpParameterType type() const
type
const char * setDoubleParameterWithMessage(CbcModel &model, double value, int &returnCode)
Sets double parameter and returns printable string and error code.
void gutsOfConstructor()
gutsOfConstructor
void setCbcOrClpPrinting(bool yesNo)
std::string shortHelp() const
Returns short help.
std::string CoinReadGetString(int argc, const char *argv[])
void restoreSolution(ClpSimplex *lpSolver, std::string fileName, int mode)
void printLongHelp() const
Print Long help.
std::string name() const
Returns name.
int intValue_
Integer parameter - current value.
int currentKeyWord_
Current keyWord (if a keyword parameter).
std::string CoinReadNextField()
Simple read stuff.
void setCurrentOption(int value, bool printIt=false)
Sets current parameter option.
int checkDoubleParameter(double value) const
Checks a double parameter (nonzero code if error).
std::string longHelp() const
Returns long help.
~CbcOrClpParam()
Destructor.
void append(std::string keyWord)
Insert string (only valid for keywords).
CbcOrClpParam & operator=(const CbcOrClpParam &rhs)
Assignment operator. This copies the data.
int whereUsed_
7 if used everywhere, 1 - used by clp 2 - used by cbc 4 - used by ampl
int fakeKeyWord_
If >=0 then integers allowed as a fake keyword So minusnnnn would got to -nnnn in currentKeyword_ and...
void setLonghelp(const std::string help)
Set Long help.
void saveSolution(const ClpSimplex *lpSolver, std::string fileName)
CbcOrClpParam()
Constructors.
void printOptions() const
Prints parameter options.
void setDoubleValue(double value)
Sets double value.
std::string name_
Name.
const char * setDoubleValueWithMessage(double value)
Sets double value with message.
int whereUsed() const
7 if used everywhere, 1 - used by clp 2 - used by cbc 4 - used by ampl
double lowerDoubleValue_
If double == okay.
unsigned int lengthMatch_
int whichParam(const CbcOrClpParameterType &name, const std::vector< CbcOrClpParam > &parameters)
CbcOrClpParameterType type_
double lowerDoubleValue() const
Returns the lower bound for a double-valued parameter.
void CoinReadPrintit(const char *input)
int display_
Display on ?
int setIntParameter(CbcModel &model, int value)
Sets a int parameter (nonzero code if error).
std::string stringValue_
String parameter - current value.
void setIntValue(int value)
Sets int value.
int intValue() const
void addHelp(std::string keyWord)
Adds one help line.
unsigned int lengthName_
int upperIntValue() const
Returns the upper bound for an int-valued parameter.
double CoinReadGetDoubleField(int argc, const char *argv[], int *valid)
int setDoubleParameter(CbcModel &model, double value)
Sets a double parameter (nonzero code if error).
std::vector< std::string > definedKeyWords_
set of valid strings
double upperDoubleValue() const
Returns the upper bound for a double-valued parameter.
const char * setIntValueWithMessage(int value)
Sets int value with message.
const char * setCurrentOptionWithMessage(int value)
Sets current parameter option and returns printable string.
void setStringValue(std::string value)
Sets string value.
int displayThis() const
whether to display
std::string longHelp_
Long help.
void printString() const
Print action and string.
int lowerIntValue() const
Returns the lower bound for an int-valued parameter.
std::string shortHelp_
Short help.
double doubleValue() const
int parameterOption(std::string check) const
Returns parameter option which matches (-1 if none).
std::string currentOption() const
Returns current parameter option.
const char * setIntParameterWithMessage(CbcModel &model, int value, int &returnCode)
Sets int parameter and returns printable string and error code.
std::string CoinReadGetCommand(int argc, const char *argv[])
int CoinReadGetIntField(int argc, const char *argv[], int *valid)
int lowerIntValue_
If int == okay.
int fakeKeyWord() const
Gets value of fake keyword.
int upperIntValue_
double doubleValue_
Double parameter - current value.
double upperDoubleValue_
void setFakeKeyWord(int value, int fakeValue)
Sets value of fake keyword.
int currentOptionAsInteger() const
Returns current parameter option position.
std::string stringValue() const
int matches(std::string input) const
Returns 1 if matches minimum, 2 if matches less, 0 if not matched.
int lengthMatchName() const
Returns length of name for ptinting.
int intParameter(CbcModel &model) const
Gets a int parameter.
CbcOrClpParameterType action_
Action.
const std::vector< std::string > & definedKeywords() const
Returns set of valid strings.
std::string matchName() const
Returns name which could match.
void establishParams(std::vector< CbcOrClpParam > &params)
int fakeValue_
Return this as main value if an integer.
double doubleParameter(CbcModel &model) const
Gets a double parameter.
#define OsiSolverInterface
Definition Idiot.hpp:14
This solves LPs using the simplex method.