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

Last change on this file since 524 was 524, checked in by bjarni, 6 years ago

Updated header file CoinMP.h to remove warnings about multiple exports during 64-bit compile in trunk 1.7

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