source: trunk/CoinMP/src/CoinMP.h @ 364

Last change on this file since 364 was 364, checked in by bjarni, 10 years ago

Add new GetOption? routines for OptionID and fix some older ones

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 21.3 KB
Line 
1/************************************************************************/
2/*                                                                      */
3/*  CoinMP Solver                                     Maximal Software  */
4/*                                                                      */
5/*  File         :  'coinmp.h'                                          */
6/*                                                                      */
7/*  Version      :  1.5                                                 */
8/*                                                                      */
9/*  Author       :  Bjarni Kristjansson, Maximal Software               */
10/*                                                                      */
11/*  Copyright (c) 2002-2009                     Bjarni Kristjansson     */
12/*                                                                      */
13/************************************************************************/
14
15// $Id: CoinMP.h 364 2009-11-16 16:36:25Z bjarni $
16
17#ifndef _COINMP_H_
18#define _COINMP_H_
19
20
21#if defined(_MSC_VER) && !defined(HAVE_CONFIG_H)
22
23#define SOLVCALL   __stdcall
24#ifdef SOLVER_EXPORT
25#define SOLVAPI  __declspec(dllexport)
26#else
27#define SOLVAPI __declspec(dllimport)
28#endif
29
30#else
31
32#define SOLVAPI
33#define SOLVCALL
34
35#endif
36
37
38#ifndef SOLV_LINK_LIB
39#ifndef SOLV_LINK_DLL
40#define SOLV_LINK_LIB
41#endif
42#endif
43
44
45
46#define SOLV_CALL_SUCCESS   0
47#define SOLV_CALL_FAILED    -1
48
49#define SOLV_METHOD_DEFAULT       0x00000000L
50
51#define SOLV_METHOD_PRIMAL        0x00000001L
52#define SOLV_METHOD_DUAL          0x00000002L
53#define SOLV_METHOD_NETWORK       0x00000004L
54#define SOLV_METHOD_BARRIER       0x00000008L
55
56#define SOLV_METHOD_BENDERS       0x00000100L
57#define SOLV_METHOD_DEQ           0x00000200L
58#define SOLV_METHOD_EV            0x00000400L
59
60
61#define SOLV_FEATURE_LP            0x00000001L
62#define SOLV_FEATURE_QP            0x00000002L
63#define SOLV_FEATURE_QCP           0x00000004L
64#define SOLV_FEATURE_NLP           0x00000008L
65
66#define SOLV_FEATURE_MIP           0x00000010L
67#define SOLV_FEATURE_MIQP          0x00000020L
68#define SOLV_FEATURE_MIQCP         0x00000040L
69#define SOLV_FEATURE_MINLP         0x00000080L
70
71#define SOLV_FEATURE_SP            0x00010000L
72
73
74#define SOLV_OBJSENS_MAX   -1
75#define SOLV_OBJSENS_MIN    1
76
77
78#define SOLV_FILE_LOG      0
79#define SOLV_FILE_BASIS    1
80#define SOLV_FILE_MIPSTART 2
81#define SOLV_FILE_MPS      3
82#define SOLV_FILE_LP       4
83#define SOLV_FILE_BINARY   5
84#define SOLV_FILE_OUTPUT   6
85#define SOLV_FILE_BINOUT   7
86#define SOLV_FILE_IIS      8
87
88#define SOLV_CHECK_COLCOUNT     1
89#define SOLV_CHECK_ROWCOUNT     2
90#define SOLV_CHECK_RANGECOUNT   3
91#define SOLV_CHECK_OBJSENSE     4
92#define SOLV_CHECK_ROWTYPE      5
93#define SOLV_CHECK_MATBEGIN     6
94#define SOLV_CHECK_MATCOUNT     7
95#define SOLV_CHECK_MATBEGCNT    8
96#define SOLV_CHECK_MATBEGNZ     9
97#define SOLV_CHECK_MATINDEX    10
98#define SOLV_CHECK_MATINDEXROW 11
99#define SOLV_CHECK_BOUNDS      12
100#define SOLV_CHECK_COLTYPE     13
101#define SOLV_CHECK_COLNAMES    14
102#define SOLV_CHECK_COLNAMESLEN 15
103#define SOLV_CHECK_ROWNAMES    16
104#define SOLV_CHECK_ROWNAMSLEN  17
105
106
107typedef void *HPROB;
108
109#ifdef __cplusplus
110extern "C" {
111#endif
112
113typedef int (SOLVCALL * MSGLOGCALLBACK)(const char* MessageStr);
114
115typedef int (SOLVCALL *ITERCALLBACK)(int    IterCount, 
116                                                        double ObjectValue,
117                                                        int    IsFeasible, 
118                                                        double InfeasValue);
119
120typedef int (SOLVCALL *MIPNODECALLBACK)(int    IterCount, 
121                                                           int    MipNodeCount,
122                                                           double BestBound,
123                                                           double BestInteger,
124                                                           int    IsMipImproved);
125
126
127
128#ifdef SOLV_LINK_LIB
129
130SOLVAPI int    SOLVCALL CoinInitSolver(const char* LicenseStr);
131SOLVAPI int    SOLVCALL CoinFreeSolver(void);
132
133SOLVAPI const char*  SOLVCALL CoinGetSolverName(void);
134SOLVAPI int    SOLVCALL CoinGetSolverNameBuf(char* SolverName, int buflen);
135
136SOLVAPI const char*  SOLVCALL CoinGetVersionStr(void);
137SOLVAPI int    SOLVCALL CoinGetVersionStrBuf(char* VersionStr, int buflen);
138SOLVAPI double SOLVCALL CoinGetVersion(void);
139
140SOLVAPI int    SOLVCALL CoinGetFeatures(void);
141SOLVAPI int    SOLVCALL CoinGetMethods(void);
142SOLVAPI double SOLVCALL CoinGetInfinity(void);
143
144SOLVAPI HPROB  SOLVCALL CoinCreateProblem(const char* ProblemName);
145
146SOLVAPI int SOLVCALL CoinLoadMatrix(HPROB hProb, 
147                                int ColCount, int RowCount, int NZCount, int RangeCount, 
148                                int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
149                                double* LowerBounds, double* UpperBounds, char* RowType, 
150                                double* RHSValues, double* RangeValues, int* MatrixBegin, 
151                                int* MatrixCount, int* MatrixIndex, double* MatrixValues);
152
153SOLVAPI int SOLVCALL CoinLoadNames(HPROB hProb, char** ColNamesList, 
154                                char** RowNamesList, char* ObjectName);
155
156SOLVAPI int SOLVCALL CoinLoadNamesBuf(HPROB hProb, char* ColNamesBuf, 
157                                char* RowNamesBuf, char* ObjectName);
158
159SOLVAPI int    SOLVCALL CoinLoadProblem(HPROB hProb, 
160                                        int ColCount, int RowCount, int NZCount, int RangeCount, 
161                                        int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
162                                        double* LowerBounds, double* UpperBounds, char* RowType, 
163                                        double* RHSValues, double* RangeValues, int* MatrixBegin, 
164                                        int* MatrixCount, int* MatrixIndex, double* MatrixValues,   
165                                        char** ColNamesList, char** RowNamesList, char* objName);
166
167SOLVAPI int    SOLVCALL CoinLoadProblemBuf(HPROB hProb, 
168                                        int ColCount, int RowCount, int NZCount, int RangeCount, 
169                                        int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
170                                        double* LowerBounds, double* UpperBounds, char* RowType, 
171                                        double* RHSValues, double* RangeValues, int* MatrixBegin, 
172                                        int* MatrixCount, int* MatrixIndex, double* MatrixValues,   
173                                        char* ColNamesBuf, char* RowNamesBuf, char* objName);
174
175SOLVAPI int    SOLVCALL CoinLoadInitValues(HPROB hProb, double* InitValues);
176
177SOLVAPI int    SOLVCALL CoinLoadInteger(HPROB hProb, char* ColumnType);
178
179
180SOLVAPI int    SOLVCALL CoinLoadPriority(HPROB hProb, int PriorCount, int* PriorIndex, 
181                                                                                  int* PriorValues, int* PriorBranch);
182
183SOLVAPI int    SOLVCALL CoinLoadSos(HPROB hProb, int SosCount, int SosNZCount, 
184                                                   int* SosType, int* SosPrior, int* SosBegin,   
185                                                   int* SosIndex, double* SosRef);
186
187SOLVAPI int    SOLVCALL CoinLoadSemiCont(HPROB hProb, int SemiCount, int* SemiIndex);
188
189SOLVAPI int    SOLVCALL CoinLoadQuadratic(HPROB hProb, int* QuadBegin, int* QuadCount, 
190                                                                 int* QuadIndex, double* QuadValues);
191
192SOLVAPI int    SOLVCALL CoinLoadNonlinear(HPROB hProb, int NlpTreeCount, int NlpLineCount, 
193                                                                 int* NlpBegin, int* NlpOper, int* NlpArg1, 
194                                                                 int* NlpArg2, int* NlpIndex1, int* NlpIndex2, 
195                                                                 double* NlpValue1, double* NlpValue2);
196
197SOLVAPI int    SOLVCALL CoinUnloadProblem(HPROB hProb);
198
199SOLVAPI int    SOLVCALL CoinCheckProblem(HPROB hProb);
200
201// Depreciated, use CoinLoadNamesBuf instead
202//SOLVAPI int    SOLVCALL CoinSetLoadNamesType(HPROB hProb, int LoadNamesType);
203
204SOLVAPI const char*  SOLVCALL CoinGetProblemName(HPROB hProb);
205SOLVAPI int    SOLVCALL CoinGetProblemNameBuf(HPROB hProb, char* ProblemName, int buflen);
206
207SOLVAPI int    SOLVCALL CoinGetColCount(HPROB hProb);
208SOLVAPI int    SOLVCALL CoinGetRowCount(HPROB hProb);
209
210SOLVAPI const char*  SOLVCALL CoinGetColName(HPROB hProb, int col);
211SOLVAPI int    SOLVCALL CoinGetColNameBuf(HPROB hProb, int col, char* ColName, int buflen);
212
213SOLVAPI const char*  SOLVCALL CoinGetRowName(HPROB hProb, int row);
214SOLVAPI int    SOLVCALL CoinGetRowNameBuf(HPROB hProb, int row, char* RowName, int buflen);
215
216SOLVAPI int    SOLVCALL CoinSetMsgLogCallback(HPROB hProb, MSGLOGCALLBACK MsgLogCallback);
217SOLVAPI int    SOLVCALL CoinSetIterCallback(HPROB hProb, ITERCALLBACK IterCallback);
218SOLVAPI int    SOLVCALL CoinSetMipNodeCallback(HPROB hProb, MIPNODECALLBACK MipNodeCallback);
219
220SOLVAPI int    SOLVCALL CoinOptimizeProblem(HPROB hProb, int Method);
221
222SOLVAPI int    SOLVCALL CoinGetSolutionStatus(HPROB hProb);
223SOLVAPI const char*  SOLVCALL CoinGetSolutionText(HPROB hProb, int SolutionStatus);
224SOLVAPI int    SOLVCALL CoinGetSolutionTextBuf(HPROB hProb, int SolutionStatus, char* SolutionText, int buflen);
225
226SOLVAPI double SOLVCALL CoinGetObjectValue(HPROB hProb);
227SOLVAPI double SOLVCALL CoinGetMipBestBound(HPROB hProb);
228
229SOLVAPI int    SOLVCALL CoinGetIterCount(HPROB hProb);
230SOLVAPI int    SOLVCALL CoinGetMipNodeCount(HPROB hProb);
231
232SOLVAPI int    SOLVCALL CoinGetSolutionValues(HPROB hProb, double* Activity, double* ReducedCost, 
233                                                                         double* SlackValues, double* ShadowPrice);
234SOLVAPI int    SOLVCALL CoinGetSolutionRanges(HPROB hProb, double* ObjLoRange, double* ObjUpRange,
235                                                                         double* RhsLoRange, double* RhsUpRange);
236SOLVAPI int    SOLVCALL CoinGetSolutionBasis(HPROB hProb, int* ColStatus, double* RowStatus);
237
238
239
240SOLVAPI int    SOLVCALL CoinReadFile(HPROB hProb, int FileType, const char* ReadFilename);
241SOLVAPI int    SOLVCALL CoinWriteFile(HPROB hProb, int FileType, const char* WriteFilename);
242
243SOLVAPI int    SOLVCALL CoinOpenLogFile(HPROB hProb, const char* LogFilename);
244SOLVAPI int    SOLVCALL CoinCloseLogFile(HPROB hProb);
245
246
247
248SOLVAPI int    SOLVCALL CoinGetOptionCount(HPROB hProb);
249SOLVAPI int    SOLVCALL CoinLocateOptionID(HPROB hProb, int OptionID);
250SOLVAPI int    SOLVCALL CoinLocateOptionName(HPROB hProb, const char* OptionName);
251
252SOLVAPI int        SOLVCALL CoinGetOptionID(HPROB hProb, int OptionNr);
253SOLVAPI int    SOLVCALL CoinGetOptionInfo(HPROB hProb, int OptionNr, int* OptionID, int* GroupType, int* OptionType);
254SOLVAPI int    SOLVCALL CoinGetIntOptionMinMax(HPROB hProb, int OptionNr, int* MinValue, int* MaxValue);
255SOLVAPI int    SOLVCALL CoinGetRealOptionMinMax(HPROB hProb, int OptionNr, double* MinValue, double* MaxValue);
256SOLVAPI int    SOLVCALL CoinGetOptionNamesBuf(HPROB hProb, int OptionNr, char* OptionName, char* ShortName, int buflen);
257
258
259SOLVAPI int        SOLVCALL CoinGetOptionGroup(HPROB hProb, int OptionID);
260SOLVAPI int    SOLVCALL CoinGetOptionType(HPROB hProb, int OptionID);
261
262SOLVAPI int    SOLVCALL CoinGetIntOptionDefaultValue(HPROB hProb, int OptionID);
263SOLVAPI int    SOLVCALL CoinGetIntOptionMinValue(HPROB hProb, int OptionID);
264SOLVAPI int    SOLVCALL CoinGetIntOptionMaxValue(HPROB hProb, int OptionID);
265
266SOLVAPI double SOLVCALL CoinGetRealOptionDefaultValue(HPROB hProb, int OptionID);
267SOLVAPI double SOLVCALL CoinGetRealOptionMinValue(HPROB hProb, int OptionID);
268SOLVAPI double SOLVCALL CoinGetRealOptionMaxValue(HPROB hProb, int OptionID);
269
270SOLVAPI const char*  SOLVCALL CoinGetOptionName(HPROB hProb, int OptionID);
271SOLVAPI int    SOLVCALL CoinGetOptionNameBuf(HPROB hProb, int OptionID, char* OptionName, int buflen);
272SOLVAPI const char*  SOLVCALL CoinGetOptionShortName(HPROB hProb, int OptionID);
273SOLVAPI int    SOLVCALL CoinGetOptionShortNameBuf(HPROB hProb, int OptionID, char* ShortName, int buflen);
274
275
276SOLVAPI int    SOLVCALL CoinGetOptionChanged(HPROB hProb, int OptionID);
277
278SOLVAPI int    SOLVCALL CoinGetIntOption(HPROB hProb, int OptionID);
279SOLVAPI int    SOLVCALL CoinSetIntOption(HPROB hProb, int OptionID, int IntValue);
280
281SOLVAPI double SOLVCALL CoinGetRealOption(HPROB hProb, int OptionID);
282SOLVAPI int    SOLVCALL CoinSetRealOption(HPROB hProb, int OptionID, double RealValue);
283
284SOLVAPI const char*  SOLVCALL CoinGetStringOption(HPROB hProb, int OptionID);
285SOLVAPI int    SOLVCALL CoinGetStringOptionBuf(HPROB hProb, int OptionID, char* StringValue, int buflen);
286SOLVAPI int    SOLVCALL CoinSetStringOption(HPROB hProb, int OptionID, const char* StringValue);
287
288
289#endif
290
291
292#ifdef SOLV_LINK_DLL
293
294int    (SOLVCALL *CoinInitSolver)(const char* LicenseStr);
295int    (SOLVCALL *CoinFreeSolver)(void);
296
297const char*  (SOLVCALL *CoinGetSolverName)(void);
298int    (SOLVCALL *CoinGetSolverNameBuf)(char* SolverName, int buflen);
299const char*  (SOLVCALL *CoinGetVersionStr)(void);
300int    (SOLVCALL *CoinGetVersionStrBuf)(char* VersionStr, int buflen);
301double (SOLVCALL *CoinGetVersion)(void);
302int    (SOLVCALL *CoinGetFeatures)(void);
303int    (SOLVCALL *CoinGetMethods)(void);
304double (SOLVCALL *CoinGetInfinity)(void);
305
306HPROB  (SOLVCALL *CoinCreateProblem)(const char* ProblemName);
307
308int    (SOLVCALL *CoinLoadMatrix)(HPROB hProb, 
309                                int ColCount, int RowCount, int NZCount, int RangeCount, 
310                                int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
311                                double* LowerBounds, double* UpperBounds, char* RowType, 
312                                double* RHSValues, double* RangeValues, int* MatrixBegin, 
313                                int* MatrixCount, int* MatrixIndex, double* MatrixValues);
314
315int    (SOLVCALL *CoinLoadNames)(HPROB hProb, char** ColNamesList, 
316                                char** RowNamesList, char* ObjectName);
317
318int    (SOLVCALL *CoinLoadNamesBuf)(HPROB hProb, char* ColNamesBuf, 
319                                char* RowNamesBuf, char* ObjectName);
320
321int    (SOLVCALL *CoinLoadProblem)(HPROB hProb, 
322                                                                   int ColCount, int RowCount, int NonZeroCount, int RangeCount, 
323                                                                   int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
324                                                                   double* LowerBounds, double* UpperBounds, char* RowType, 
325                                                                   double* RHSValues, double* RangeValues, int* MatrixBegin, 
326                                                                   int* MatrixCount, int* MatrixIndex, double* MatrixValues,   
327                                                                   char** ColNamesList, char** RowNamesList, char* objName);
328
329int    (SOLVCALL *CoinLoadProblemBuf)(HPROB hProb, 
330                                                                   int ColCount, int RowCount, int NonZeroCount, int RangeCount, 
331                                                                   int ObjectSense, double ObjectConst, double* ObjectCoeffs, 
332                                                                   double* LowerBounds, double* UpperBounds, char* RowType, 
333                                                                   double* RHSValues, double* RangeValues, int* MatrixBegin, 
334                                                                   int* MatrixCount, int* MatrixIndex, double* MatrixValues,   
335                                                                   char* ColNamesBuf, char* RowNamesBuf, char* objName);
336
337int    (SOLVCALL *CoinLoadInitValues)(HPROB hProb, double* InitValues);
338
339int    (SOLVCALL *CoinLoadInteger)(HPROB hProb, char* ColumnType);
340
341int    (SOLVCALL *CoinLoadPriority)(HPROB hProb, int PriorCount, int* PriorIndex, 
342                                                                                                int* PriorValues, int* PriorBranch);
343
344int    (SOLVCALL *CoinLoadSos)(HPROB hProb, int SosCount, int SosNZCount, 
345                                                                                 int* SosType, int* SosPrior, int* SosBegin,   
346                                                                                 int* SosIndex, double* SosRef);
347
348int    (SOLVCALL *CoinLoadSemiCont)(HPROB hProb, int SemiCount, int* SemiIndex);
349
350int    (SOLVCALL *CoinLoadQuadratic)(HPROB hProb, int* QuadBegin, int* QuadCount, 
351                                                                                                 int* QuadIndex, double* QuadValues);
352
353int    (SOLVCALL *CoinLoadNonlinear)(HPROB hProb, int NlpTreeCount, int NlpLineCount, 
354                                                                                                 int* NlpBegin, int* NlpOper, int* NlpArg1, 
355                                                                                                 int* NlpArg2, int* NlpIndex1, int* NlpIndex2, 
356                                                                                                 double* NlpValue1, double* NlpValue2);
357
358int    (SOLVCALL *CoinUnloadProblem)(HPROB hProb);
359
360int    (SOLVCALL *CoinCheckProblem)(HPROB hProb);
361
362//int    (SOLVCALL *CoinSetLoadNamesType)(HPROB hProb, int LoadNamesType);
363
364const char*  (SOLVCALL *CoinGetProblemName)(HPROB hProb);
365int    (SOLVCALL *CoinGetProblemNameBuf)(HPROB hProb, char* ProblemName, int buflen);
366
367int    (SOLVCALL *CoinGetColCount)(HPROB hProb);
368int    (SOLVCALL *CoinGetRowCount)(HPROB hProb);
369
370const char*  (SOLVCALL *CoinGetColName)(HPROB hProb, int col);
371int    (SOLVCALL *CoinGetColNameBuf)(HPROB hProb, int col, char* ColName, int buflen);
372const char*  (SOLVCALL *CoinGetRowName)(HPROB hProb, int row);
373int    (SOLVCALL *CoinGetRowNameBuf)(HPROB hProb, int row, char* RowName, int buflen);
374
375void   (SOLVCALL *CoinSetMsgLogCallback)(HPROB hProb, MSGLOGCALLBACK MsgLogCallback);
376void   (SOLVCALL *CoinSetIterCallback)(HPROB hProb, ITERCALLBACK IterCallback);
377void   (SOLVCALL *CoinSetMipNodeCallback)(HPROB hProb, MIPNODECALLBACK MipNodeCallback);
378
379int    (SOLVCALL *CoinOptimizeProblem)(HPROB hProb, int Method);
380
381int    (SOLVCALL *CoinGetSolutionStatus)(HPROB hProb);
382const char* (SOLVCALL *CoinGetSolutionText)(HPROB hProb, int SolutionStatus);
383int    (SOLVCALL *CoinGetSolutionTextBuf)(HPROB hProb, int SolutionStatus, char* SolutionText, int buflen);
384
385double (SOLVCALL *CoinGetObjectValue)(HPROB hProb);
386double (SOLVCALL *CoinGetMipBestBound)(HPROB hProb);
387
388int    (SOLVCALL *CoinGetIterCount)(HPROB hProb);
389int    (SOLVCALL *CoinGetMipNodeCount)(HPROB hProb);
390
391int    (SOLVCALL *CoinGetSolutionValues)(HPROB hProb, double* Activity, double* ReducedCost, 
392                                                                                                          double* SlackValues, double* ShadowPrice);
393int    (SOLVCALL *CoinGetSolutionRanges)(HPROB hProb, double* ObjLoRange, double* ObjUpRange,
394                                                                                           double* RhsLoRange, double* RhsUpRange);
395int    (SOLVCALL *CoinGetSolutionBasis)(HPROB hProb, int* ColStatus, double* RowStatus);
396
397
398void   (SOLVCALL *CoinReadFile)(HPROB hProb, int FileType, const char* ReadFilename);
399void   (SOLVCALL *CoinWriteFile)(HPROB hProb, int FileType, const char* WriteFilename);
400
401void   (SOLVCALL *CoinOpenLogFile)(HPROB hProb, const char* LogFilename);
402void   (SOLVCALL *CoinCloseLogFile)(HPROB hProb);
403
404
405int    (SOLVCALL *CoinGetOptionCount)(HPROB hProb);
406int    (SOLVCALL *CoinLocateOptionID)(HPROB hProb, int OptionID);
407int    (SOLVCALL *CoinLocateOptionName)(HPROB hProb, const char* OptionName);
408
409int        (SOLVCALL *CoinGetOptionID)(HPROB hProb, int OptionNr);
410int    (SOLVCALL *CoinGetOptionInfo)(HPROB hProb, int OptionNr, int* OptionID, int* GroupType, int* OptionType);
411int    (SOLVCALL *CoinGetIntOptionMinMax)(HPROB hProb, int OptionNr, int* MinValue, int* MaxValue);
412int    (SOLVCALL *CoinGetRealOptionMinMax)(HPROB hProb, int OptionNr, double* MinValue, double* MaxValue);
413int    (SOLVCALL *CoinGetOptionNames)(HPROB hProb, int OptionNr, char* OptionName, char* ShortName, int buflen);
414
415
416int    (SOLVCALL *CoinGetOptionGroup)(HPROB hProb, int OptionID);
417int    (SOLVCALL *CoinGetOptionType)(HPROB hProb, int OptionID);
418
419int    (SOLVCALL *CoinGetIntOptionDefaultValue)(HPROB hProb, int OptionID);
420int    (SOLVCALL *CoinGetIntOptionMinValue)(HPROB hProb, int OptionID);
421int    (SOLVCALL *CoinGetIntOptionMaxValue)(HPROB hProb, int OptionID);
422
423double (SOLVCALL *CoinGetRealOptionDefaultValue)(HPROB hProb, int OptionID);
424double (SOLVCALL *CoinGetRealOptionMinValue)(HPROB hProb, int OptionID);
425double (SOLVCALL *CoinGetRealOptionMaxValue)(HPROB hProb, int OptionID);
426
427const char*  (SOLVCALL *CoinGetOptionName)(HPROB hProb, int OptionID);
428int    (SOLVCALL *CoinGetOptionNameBuf)(HPROB hProb, int OptionID, char* OptionName, int buflen);
429const char*  (SOLVCALL *CoinGetOptionShortName)(HPROB hProb, int OptionID);
430int    (SOLVCALL *CoinGetOptionShortNameBuf)(HPROB hProb, int OptionID, char* ShortName, int buflen);
431
432
433int    (SOLVCALL *CoinGetOptionChanged)(HPROB hProb, int OptionID);
434
435int    (SOLVCALL *CoinGetIntOption)(HPROB hProb, int OptionID);
436int    (SOLVCALL *CoinSetIntOption)(HPROB hProb, int OptionID, int IntValue);
437
438double (SOLVCALL *CoinGetRealOption)(HPROB hProb, int OptionID);
439int    (SOLVCALL *CoinSetRealOption)(HPROB hProb, int OptionID, double RealValue);
440
441const char*  (SOLVCALL *CoinGetStringOption)(HPROB hProb, int OptionID);
442int    (SOLVCALL *CoinGetStringOptionBuf)(HPROB hProb, int OptionID, char* StringValue, int buflen);
443int    (SOLVCALL *CoinSetStringOption)(HPROB hProb, int OptionID, const char* StringValue);
444
445#endif
446
447#ifdef __cplusplus
448}
449#endif
450
451
452
453#define COIN_INT_SOLVEMETHOD     1
454#define COIN_INT_PRESOLVETYPE    2
455#define COIN_INT_SCALING         3
456#define COIN_INT_PERTURBATION    4
457#define COIN_INT_PRIMALPIVOTALG  5
458#define COIN_INT_DUALPIVOTALG    6
459#define COIN_INT_LOGLEVEL        7
460#define COIN_INT_MAXITER         8
461#define COIN_INT_CRASHIND        9     
462#define COIN_INT_CRASHPIVOT     10
463#define COIN_REAL_CRASHGAP      11
464#define COIN_REAL_PRIMALOBJLIM  12
465#define COIN_REAL_DUALOBJLIM    13
466#define COIN_REAL_PRIMALOBJTOL  14
467#define COIN_REAL_DUALOBJTOL    15
468#define COIN_REAL_MAXSECONDS    16
469
470#define COIN_INT_MIPMAXNODES    17
471#define COIN_INT_MIPMAXSOL      18
472#define COIN_REAL_MIPMAXSEC     19
473
474#define COIN_INT_MIPFATHOMDISC     20
475#define COIN_INT_MIPHOTSTART       21
476//#define COIN_INT_MIPFORCEPRIOR     21
477#define COIN_INT_MIPMINIMUMDROP    22
478#define COIN_INT_MIPMAXCUTPASS     23
479#define COIN_INT_MIPMAXPASSROOT    24
480#define COIN_INT_MIPSTRONGBRANCH   25
481#define COIN_INT_MIPSCANGLOBCUTS   26
482
483#define COIN_REAL_MIPINTTOL        30
484#define COIN_REAL_MIPINFWEIGHT     31
485#define COIN_REAL_MIPCUTOFF        32
486#define COIN_REAL_MIPABSGAP        33
487#define COIN_REAL_MIPFRACGAP       34
488
489#define COIN_INT_MIPCUT_PROBING          110
490#define COIN_INT_MIPPROBE_FREQ           111
491#define COIN_INT_MIPPROBE_MODE           112
492#define COIN_INT_MIPPROBE_USEOBJ         113
493#define COIN_INT_MIPPROBE_MAXPASS        114
494#define COIN_INT_MIPPROBE_MAXPROBE       115
495#define COIN_INT_MIPPROBE_MAXLOOK        116
496#define COIN_INT_MIPPROBE_ROWCUTS        117
497
498#define COIN_INT_MIPCUT_GOMORY           120
499#define COIN_INT_MIPGOMORY_FREQ          121
500#define COIN_INT_MIPGOMORY_LIMIT         122
501#define COIN_REAL_MIPGOMORY_AWAY         123
502
503
504#define COIN_INT_MIPCUT_KNAPSACK         130
505#define COIN_INT_MIPKNAPSACK_FREQ        131
506#define COIN_INT_MIPKNAPSACK_MAXIN       132
507
508#define COIN_INT_MIPCUT_ODDHOLE          140
509#define COIN_INT_MIPODDHOLE_FREQ         141
510#define COIN_REAL_MIPODDHOLE_MINVIOL     142
511#define COIN_REAL_MIPODDHOLE_MINVIOLPER  143
512#define COIN_INT_MIPODDHOLE_MAXENTRIES   144
513
514#define COIN_INT_MIPCUT_CLIQUE           150
515#define COIN_INT_MIPCLIQUE_FREQ          151
516#define COIN_INT_MIPCLIQUE_PACKING       152
517#define COIN_INT_MIPCLIQUE_STAR          153
518#define COIN_INT_MIPCLIQUE_STARMETHOD    154
519#define COIN_INT_MIPCLIQUE_STARMAXLEN    155
520#define COIN_INT_MIPCLIQUE_STARREPORT    156
521#define COIN_INT_MIPCLIQUE_ROW           157
522#define COIN_INT_MIPCLIQUE_ROWMAXLEN     158
523#define COIN_INT_MIPCLIQUE_ROWREPORT     159
524#define COIN_REAL_MIPCLIQUE_MINVIOL      160
525
526#define COIN_INT_MIPCUT_LIFTPROJECT      170
527#define COIN_INT_MIPLIFTPRO_FREQ         171
528#define COIN_INT_MIPLIFTPRO_BETAONE      172
529
530#define COIN_INT_MIPCUT_SIMPROUND        180
531#define COIN_INT_MIPSIMPROUND_FREQ       181   
532
533#define COIN_INT_MIPUSECBCMAIN           200   
534
535
536#endif  /* _COINMP_H_ */
Note: See TracBrowser for help on using the repository browser.